2008-11-18 9 views
1

Ok, voici le problème: J'ai une application JSF et quelques fichiers JSP. Disons que j'ai main.jsp qui a une vue et inclut sub.jsp. Cela fonctionne bien. sub.jsp contient une sous-vue. En conséquence, tous les ID des éléments de formulaire dans sub.jsp suivent la forme de 'subview: component'. Supposons maintenant que j'utilise un ajax et que je veuille récupérer la page jsp sub.jsp et l'inclure dans un DIV quelque part. Maintenant, les ID sont tous de la forme «composant». Je ne connais pas un moyen de contourner cela, et avoir à vérifier pour 2 jeux différents d'ID dans mon javascript interactif est une douleur. Y a-t-il un moyen d'obtenir des ID cohérents?Chargement de la charge ajax dans JSF

J'ai essayé: Retrait de la sous-vue - (l'appel AJAX échouera car pas de vue se trouve)

et

h: form prependid = false - ce ne supprime que l'identifiant de forme, pas les ID de sous-vue

Répondre

2

AJAX est difficile à faire avec JSF. Si le framework JSF que vous utilisez ne le supporte pas, vous rencontrerez de nombreux problèmes d'état d'affichage.

Je suis surpris une exception est levée lorsque ne vous adresse sub.jsp directement - il ne devrait pas être h: vue en sub.jsp et sans UIViewRoot, je ne suis pas sûr de savoir comment une interface utilisateur l'arbre serait créé. Si vous avez un h: view dans sub.jsp, alors vous mettez deux UIViewRoots dans votre arborescence de l'interface utilisateur - c'est un bug. (L'arborescence des composants JSF est à peu près analogue à celle des autres kits de widgets Java comme Swing ou SWT.)

Je suppose que le problème que vous observez est que vous soumettez une vue différente de celle qui a été rendue à l'origine. . Comme l'arbre des composants est complètement différent, le clientIds sera généré à partir d'une racine de vue différente. Vous pouvez lire sur la façon dont ils sont intégrés dans this answer.

En bref, je ne pense pas que le mécanisme que vous utilisez pour mettre à jour le client est valide.

0

Avez-vous regardé ajax4Jsf (aka Richfaces)?

Questions connexes