Le c: si le test échoue toujours pour moi et qu'il ne pénètre jamais dans la boucle. J'utilise les espaces de noms suivantscheck-in conditionnel c: si toujours échoue
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jstl/core"
La chaîne ('array') à diviser est "Tom et Jerry sont Gap1 amis"
<s:decorate template="/layout/display-text.xhtml">
<c:set var="array" value="#{_mybean.value}"/>
<c:set var="space" value="#{fn:split(array, ' ')}"/>
<c:set var="len" value="#{fn:length(space)}"/>
<h:outputText value="total length = #{len}"/><br/>
<c:forEach begin="0" end="5" var="index">
<h:outputText value="index = #{index}, value = #{space[index]}"/><br/>
<c:set var="val" value="#{space[index]}"/>
<c:if test="#{fn:startsWith(val, 'GAP')}">
<h:outputText value="Found keyword parameter GAP" /><br/>
</c:if>
</c:forEach>
</s:decorate>
J'ai apporté la modification suivante à mon code xmlns: c = "http://java.sun.com/jsp/jstl/core Toutes les instructions de débogage (h: outputText) impriment des valeurs vides pour moi. Si toutes les fonctions de fn: fonctionnent correctement pour moi ici, qu'est-ce qui me manque ici? – Achaius
Lire http://www.ilikespam.com/blog/c:foreach-vs-ui:repeat-in-facelets. dit ci-dessus, supprimer c: forEach et c: si, ils sont en cours d'évaluation lorsque la vue est construite, pas lorsque les valeurs sont appliquées à la page. – mtpettyp