Comment alors rendre à nouveau partie de la page avec le formulaire en JSF 2.0?
Actuellement, nous essayons de passer à JSF 2.0 à partir de JSF 1.2, et l'un des problème que nous avons rencontré est que c'est impossible alors rendre à nouveau partie de la page qui contient le formulaire. Comme ceci (rerender outerDiv
ou les formes elles-mêmes):
<h:panelGroup id="outerDiv">
<h:form id="form1">...</h:form>
<h:form id="form2">...</h:form>
</h:panelGroup>
Je veux dire que si je mettre à jour outerDiv
tout est mis à jour, mais la forme (ou les formes) devient lui-même brisé et se comporte de façon étrange, à moins d'appels ajax, soit ne fonctionnent pas lors de la première fois déclenchée ou au lieu de l'appeler certains bean est la méthode de créer une nouvelle instance de la fève et de ne rien faire (que ce soit de détruire le précédent avec tous les appels ou seulement la création de nouveau sur le premier appel et puis ne rien faire). Le problème peut être résolu par un nouveau rendu des composants à l'intérieur de formulaire, comme ceci (mise à jour innerDiv1
et innerDiv2
):
<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>
mais nous avons beaucoup d'endroits où nous inclure une page avec ui:include
et il n'est pas très pratique pour regarder à l'intérieur de cette page et mise à jour de certains composants. En outre, nous allons devoir modifier toutes ces pages comme beaucoup d'entre eux n'ont pas d'enveloppe commune div à l'intérieur de formes et de mise à jour de chaque composant séparément sera très fastidieux et source d'erreurs.
Donc, est-il possible de faire JSF 2.0 correctement mise à jour de la partie de la page avec 1-st approche comme il était dans le JSF 1.2?
EDIT: il semble que le problème avec l'affichage du formulaire est richfaces 4.2 problème comme je l'ai utiliser a4j:ajax
(successeur de a4j:support
qui a été utilisé avec richfaces 3.3.3) et boutons personnalisés basés sur rich:commandButton
. Lorsque j'ai remplacé avec native jsf est f:ajax
formes semble être actualisé correctement. Mais le problème avec les div extérieure est toujours d'actualité
OriginalL'auteur mykola | 2012-04-05
Vous devez vous connecter pour publier un commentaire.
Ceci est lié à la partielle de l'etat de l'épargne. Si vous ajax-mise à jour d'un composant qui contient à son tour une forme l'un de ses enfants, de son point de vue de l'état seront perdues. Tous les 1er requête ajax à l'intérieur de cette forme va échouer, car il n'y a pas d'état d'affichage. Mais si cette requête ajax est rendu le formulaire lui-même, alors cela fonctionnera.
Pour résoudre ce problème, vous devez explicitement inclure l'ID de l'autre forme(s) en ajax
render
/update
attribut suivant àouterDiv
chaque fois qu'il est invoqué à partir de un autre forme.E. g.
Non, ce ne sera pas une réponse ajax avec des composants en double. Il sera juste déclencher JSF pour préparer et enregistrer l'état de ces autres formes.
Voir aussi:
Il sera corrigé dans la JSF 2.2. Voir également le numéro 790.
OriginalL'auteur BalusC