Używam JSF i Primefaces i moje pytanie brzmi:JSF ViewParam z CommandButton
Mam stronę (page1.jsf), które recive rzutem param z listą ciągów (spacjami):
<f:metadata>
<f:viewParam name="list" value="#{bean1.list}" converter="listConverter"/>
</f:metadata>
ListConverter przekształcić ciąg na listę pojedynczych słów. Jeśli uzyskuję dostęp do strony przez URL (np. Page1.jsf? List = word1 word2 word3 ") wszystko działa dobrze!
Ale teraz próbuję użyć innej strony (page2.jsf), aby utworzyć tę listę . terminów Używam Primeface DataTable, zgodnie z następującym przykładem: http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf
Chcę tomake możliwe dla użytkownika, aby wybrać wiele wierszy (pole wyboru Primeface przykład), a następnie nacisnąć przycisk, który odsyła do page1.jsf i również przekazuje listę wybranych elementów jako parametr (np. przy użyciu przykładu Prezentacja Primeface, przekazać listę wybranych modeli samochodów)
Próbuję zrobić jego:
<p:commandButton action="page1?faces-redirect=true&includeViewParams=true" >
<f:attribute name="list" value="#{bean2.convertSelectedItemsToString()}" />
</p:commandButton>
lub to:
<p:commandButton action="page1?faces-redirect=true&includeViewParams=true" >
<f:param name="list" value="#{bean2.convertSelectedItemsToString()}" />
</p:commandButton>
gdzie bean2 ma selectedItems [] Z wybranych obiektów.
Nie trzeba dodawać ... To nie działa.
Każda pomoc? Z góry dzięki.
Jako rozwiązanie tymczasowe zastosowałem drugie podejście. Ale nie podoba mi się to, ponieważ w ten sposób mój kontroler (fasola) jest silnie uzależniony od moich poglądów. Spodziewałem się, że jsf da mi lepsze rozwiązanie. – userk
W JSF backing bean jest według konwencji "przypuszcza się", że wspiera pojedynczy widok, tak że backing bean może być zależny od widoku. Nie jest 'bean2.convertSelectedItemsToString' już wyświetlają konkretne, czy robisz coś ogólnego? Jeśli potrzebujesz ogólnego rozwiązania, możesz przekazać stronę jako parametr. Zobacz zaktualizowaną odpowiedź. –
To sprytne obejście! Zrobię to! Dzięki. – userk