Czy istnieje sposób, aby komponent bean JSF Backing powodował aktualizację komponentu na stronie? Nie chcę używać komponentu Ajax z atrybutem aktualizacji do aktualizowania komponentu na stronie. Muszę wyzwolić aktualizację w ramach metody komponentu bean JSF. Zauważ, że aktualizacja na stronie może nastąpić po zakończeniu tej metody lub przed jej zakończeniem. Używam PrimeFaces, jeśli istnieje rozwiązanie, które można uzyskać za pomocą PrimeFaces.
jsf-2
primefaces
Najlepsze praktyki
źródło
źródło
Odpowiedzi:
Korzystając ze standardowego interfejsu API JSF, dodaj identyfikator klienta do
PartialViewContext#getRenderIds()
.Korzystając z określonego interfejsu API PrimeFaces, użyj
PrimeFaces.Ajax#update()
.Lub jeśli nie korzystasz jeszcze z PrimeFaces 6.2+, użyj
RequestContext#update()
.Jeśli używasz biblioteki narzędziowej JSF OmniFaces , użyj
Ajax#update()
.Niezależnie od sposobu zwróć uwagę, że te identyfikatory klientów powinny reprezentować bezwzględne identyfikatory klientów, które nie są poprzedzone znakiem
NamingContainer
separatora, tak jak w przypadku widoku.źródło
<f:ajax listener>
lub<f:event type="preRenderView" listener>
<f:ajax>
. Jest to wprowadzone od JSF 2.0. Będziesz musiał skorzystać z udogodnień specyficznych dla biblioteki komponentów JSF 1.2.Próbowałem również zaktualizować komponent z komponentu bean / class zapasowego JSF
Po manipulowaniu komponentem interfejsu użytkownika musisz wykonać następujące czynności:
Ważne jest, aby używać clientId zamiast (po stronie serwera) componentId !!
źródło
RequestContext
Znajduje nieaktualnych z Primefaces 6,2 . Z tej wersji użyj następujących:Aby wykonać javascript z backbeanu, użyj w ten sposób:
Odniesienie:
źródło
Wszystko jest możliwe tylko wtedy, gdy jest wystarczająco dużo czasu na badania :)
To, co muszę zrobić, to jak mieć ludzi, których iteruję w interfejsie użytkownika: powtarzam i wyświetlam nazwy oraz inne pola w danych wejściowych. Ale jedno z pól było pojedyncze Wybierz - A i zależnie od tego wartość zaktualizuj kolejne wejście - B. nawet ui: powtórz nie mam id wstawiłem i pojawiło się w drzewie DOM
Niż identyfikatory w html wyglądały tak:
Niż w widoku dostałem jedną metodę jak:
A jego realizacja była w fasoli:
W ten sposób zaktualizowałem element z fasoli bez żadnych problemów. PF wersja 6.2.0
Powodzenia i miłego kodowania :)
źródło
personType
, przekazywanie zarówno osoby, jak i indeksu do nasłuchującego AJAX jest zbędne. Możesz uzyskać zarówno identyfikator, jak i wartość ze zdarzenia. Ale twoje rozwiązanie może być potrzebne w twoim konkretnym przypadku, ale ponieważ nie ma pełnego przykładu (w minimalnym powtarzalnym smaku przykładu ), trudno powiedzieć.