J'ai une page générique JSF et une classe abstraite qui est implémentée par de nombreuses autres pages et utilisée pour effectuer son traitement principal dans une méthode @PostConstruct. Maintenant que j'utilise des paramètres d'URL pour certaines pages, je souhaite déplacer le traitement de toutes les pages vers une méthode d'action viewAction afin de pouvoir utiliser les paramètres d'URL dans leur traitement.Si je ne peux pas utiliser f: viewAction dans un modèle JSF, où puis-je mettre un code de traitement post-URL générique?
Bien sûr, je ne peux pas utiliser f: métadonnées/f: viewAction dans mon modèle parce que n'est pas permis par JSF:
When using <ui:composition> templating, where should I declare the <f:metadata>?
est-il un moyen de gérer le traitement post-viewAction par tous de mes pages d'une manière générique? En ce moment, je l'ai travailler avec un f: tag événement:
page Modèle:
<ui:insert name="metadata"/>
<h:head>
<f:event type="preRenderComponent" listener="#{controller.postProcessParams}" />
</h:head>
page Client:
<ui:define name="metadata">
<f:metadata>
<f:param name="id" value="#{manageProjects.id}"/>
<f:viewAction action="#{manageProjects.processParams}"/>
</f:metadata>
</ui:define>
<ui:param name="controller" value="#{manageProjects}"/>
Est-ce bon bien?
Où avez-vous placé ce ''? Ce devrait être un enfant direct de ''. –
BalusC
J'ai été mordu par une faute de frappe. Je l'ai recopié/collé dessus et ça marche maintenant. J'ai reformulé ma question en me demandant si ce que je faisais était «correct» ou non plutôt que de savoir comment le faire fonctionner. Espérant une réponse à cela! – wsaxton