Jak zrenderować część strony z formularzem w JSF 2.0?
Obecnie staramy się przejść do JSF 2.0 z JSF 1.2 i jednym z problemów, z którymi się borykamy, jest to, że niemożliwe jest ponowne wykonanie części strony zawierającej formularz. W ten sposób (rerenderujouterDiv
lub same formularze):
<h:panelGroup id="outerDiv">
<h:form id="form1">...</h:form>
<h:form id="form2">...</h:form>
</h:panelGroup>
Mam na myśli to, że jeśli zaktualizujęouterDiv
wszystko jest aktualizowane, ale sama forma (lub formularze) zostaje złamana i zachowuje się dziwnie, co najmniej wywołania ajax nie działają po pierwszym uruchomieniu lub zamiast wywoływać metodę bean, tworzą nową instancję tego komponentu bean i nic nie robią (za pomocą niszcząc poprzednie przy każdym wywołaniu lub po prostu tworząc nowe przy pierwszym wywołaniu i nic nie robiąc). Problem można rozwiązać, odtwarzając tylko składniki wewnątrz formularza, takie jak ta (aktualizacjainnerDiv1
iinnerDiv2
):
<h:panelGroup id="outerDiv">
<h:form id="form1">
<h:panelGroup id="innerDiv1">...</h:panelGroup>
</h:form>
<h:form id="form2">
<h:panelGroup id="innerDiv2">...</h:panelGroup>
</h:form>
</h:panelGroup>
ale mamy wiele miejsc, w których umieszczamy niektóre stronyui:include
i nie jest zbyt wygodne przeglądanie tej strony i aktualizowanie niektórych składników. Poza tym będziemy musieli zmodyfikować wszystkie te strony, ponieważ wiele z nich nie ma wspólnego div-era wewnątrz formularzy i aktualizacja każdego komponentu oddzielnie będzie bardzo kłopotliwa i podatna na błędy.
Czy jest więc możliwe, aby JSF 2.0 poprawnie zaktualizował część strony za pomocą pierwszego podejścia, tak jak w JSF 1.2?
EDYTUJ: wygląda na to, że problem z renderowaniem formularzy to problem z richfaces 4.2 podczas używaniaa4j:ajax
(następcaa4j:support
który był używany z richfaces 3.3.3) i przyciski niestandardowe oparte narich:commandButton
. Kiedy zastąpiłem je natywnym jsfemf:ajax
wydaje się, że formularze zostały odświeżone poprawnie. Ale problem z zewnętrznym div jest wciąż aktualny