JSF 1.2: ui:include avec des paramètres
Ont JSF 1.2 deux pages(un.xhtml et autres.xhtml),
qui sont inclus à la page en cours par la règle suivante:
...
<c:if test="#{flowScope.Bean.param1}">
<ui:include src="one.xhtml"/>
</c:if>
<c:if test="#{!flowScope.Bean.param1}">
<ui:include src="other.xhtml"/>
</c:if>
...
Autant one.xhtml
diffère de other.xhtml
seulement par les paramètres de l'action:
un.xhtml:<h:commandLink action="actionOne">
d'autres.xhtml:<h:commandLink action="actionTwo">
Est-il possible d'utiliser certaines xhtml?
Au lieu d'un.xhtml et autres.xhtml,quelque chose comme ceci:
...
<c:if test="#{flowScope.Bean.param1}">
<ui:include src="general.xhtml" param="actionOne"/>
</c:if>
<c:if test="#{!flowScope.Bean.param1}">
<ui:include src="general.xhtml" param="actionTwo"/>
</c:if>
...
vous remercie pour l'aide.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de nid
<ui:param>
à l'intérieur de<ui:include>
de passer des paramètres au fichier inclus.et dans l'include:
Noter que cette fonction ne prend en charge les chaînes, pas les méthodes d'action. Pour ces derniers, vous devez mettre à niveau vers JSF 2.0 et l'utilisation composants en matériaux composites.
#{bean.doSomething}
au lieu deactionOne
, vous avez vraiment besoin de saisir JSF 2.0 composants composites.<ui:param>
, oui. Ce n'est pas un secret. Mais cela ne s'applique pas sur<f:param>
qui sera toujours converti àString
. Peut-être que votre confusion initiale était basée sur ce.f:param
et sa comparaison àui:param
. Je n'avais jamais utilisé lef
version de bibliothèque et conservera la différence dans l'esprit.En plus de BalusC réponse:
Il y a un moyen de le faire avec JSF 1.2, si c'est un peu laid:
et