attribut de test dans JSTL & lt; c: si & gt; marque
J'ai vu un code semblable au suivant dans une page JSP
<c:if test="<%=request.isUserInRole(RoleEnum.USER.getCode())%>">
<li>user</li>
</c:if>
Ma confusion est plus le "=" qui apparaît dans la valeur de la test
attribut. Ma compréhension était que quoi que ce soit inclus dans <%= %>
est imprimé à la sortie, mais sûrement, la valeur attribuée à tester doit être une valeur Booléenne, alors pourquoi ce travail?
Pour les points de bonus, est-il possible de modifier la valeur de l'attribut au-dessus de telle sorte qu'il n'utilisez pas de scriptlet code? Sans doute, cela signifie que l'aide EL à la place.
Cheers,
Ne
source d'informationauteur Dónal
Vous devez vous connecter pour publier un commentaire.
Tout ce que l'
test
attribut cherche à déterminer si quelque chose est vrai, c'est la chaîne "true" (cas-sensible). Par exemple, le code suivant affiche "Hello world!"Le code à l'intérieur de la
<%= %>
renvoie un booléen, donc il imprimera la chaîne "true" ou "false", ce qui est exactement ce que le<c:if>
balise de recherche.Vous pouvez également utiliser quelque chose comme
L'expression entre les <%= %> est évaluée avant la c:si l'étiquette est évalué. Donc, en supposant que |demande.isUserInRole| retours |vrai|, votre exemple serait évalué à cette première:
et puis le c:si l'étiquette serait exécuté.
Attributs de balises JSP bibliothèques en général, peut être soit statique ou résolus au moment de la demande. S'ils sont réglés au moment de la demande de la JSP permettra de résoudre leur valeur au moment de l'exécution et de passer la sortie à la balise. Cela signifie que vous pouvez mettre quasiment tous les code JSP dans l'attribut et la balise de se comporter en conséquence à ce que la sortie se produit.
Si vous regardez la jstl taglib docs, vous pouvez voir quels sont les attributs reuest temps et qui ne le sont pas. http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
<%=%> par lui-même sera envoyé à la sortie, dans le contexte de la JSTL, elle sera évaluée à une chaîne