Como reprojetar parte da página com forma no JSF 2.0?
Atualmente, estamos tentando migrar para o JSF 2.0 do JSF 1.2 e um dos problemas que enfrentamos é que é impossível renderizar novamente parte da página que contém o formulário. Assim (rerenderouterDiv
ou formulários próprios):
<h:panelGroup id="outerDiv">
<h:form id="form1">...</h:form>
<h:form id="form2">...</h:form>
</h:panelGroup>
Quero dizer que se eu atualizarouterDiv
tudo é atualizado, mas a forma (ou formulários) se torna quebrada e se comporta de maneira estranha, pelo menos as chamadas ajax não funcionam quando a primeira vez é acionada ou ao invés de chamar algum método de bean eles criam uma nova instância desse bean e não fazem nada destruindo o anterior com cada chamada ou apenas criando um novo na primeira chamada e depois não fazer nada). O problema pode ser resolvido pelo processamento de apenas componentes dentro da forma, como esta (atualizarinnerDiv1
einnerDiv2
):
<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>
mas temos muitos lugares onde incluímos alguma página comui:include
e não é muito conveniente olhar dentro dessa página e atualizar certos componentes lá. Além disso, teremos que modificar todas essas páginas, pois muitas delas não têm div de invólucro comum dentro de formulários e atualizar cada componente separadamente será muito incômodo e propenso a erros.
Então, é possível fazer com que o JSF 2.0 atualize corretamente parte da página com a primeira abordagem, como no JSF 1.2?
EDIT: parece que o problema com a prestação de formulário é richfaces 4.2 questão como eu usoa4j:ajax
(sucessor dea4j:support
que foi usado com richfaces 3.3.3) e botões personalizados baseados emrich:commandButton
. Quando eu os substituí com os jsf nativosf:ajax
formulários parece ser atualizado corretamente. Mas o problema com o div externo ainda é real