J’ai un Enum appelé statut défini comme tel :
J’aimerais accéder à la valeur de d’une balise JSTL. Plus précisément le
attribut de la `` tag. Par exemple
Je ne sais pas si cela est possible, donc toute aide serait appréciée.
J’ai un Enum appelé statut défini comme tel :
J’aimerais accéder à la valeur de d’une balise JSTL. Plus précisément le
attribut de la `` tag. Par exemple
Je ne sais pas si cela est possible, donc toute aide serait appréciée.
Vous avez 3 choix ici, aucun n'est parfait:
Vous pouvez utiliser un scriptlet dans l' test
d'attribut:
<c:when test="<%= dp.getStatus() == Status.VALID %>">
Il utilise le protocole enum, mais elle utilise également un scriptlet, qui n'est pas le "droit chemin" en JSP 2.0. Mais plus important encore, cela ne fonctionne pas, lorsque vous souhaitez ajouter une autre condition à la même when
l'aide ${}
. Et cela signifie que toutes les variables que vous souhaitez tester, doivent être déclarés dans un scriptlet, ou dans la demande, ou à la séance (pageContext
variable n'est pas disponible en .tag
fichiers).
Vous pouvez comparer à la chaîne:
<c:when test="${dp.status == 'VALID'}">
Cela a l'air propre, mais vous êtes l'introduction d'une chaîne qui duplique la valeur d'enum et ne peut pas être validée par le compilateur. Donc, si vous supprimez la valeur de l'enum ou les renommer, vous ne verrez pas que cette partie du code ne sont plus accessibles. En gros, vous avez à faire un rechercher/remplacer dans le code à chaque fois.
Vous pouvez ajouter chacun des valeurs enum vous utilisez dans le contexte de la page:
<c:set var="VALID" value="<%=Status.VALID%>"/>
et puis vous pouvez faire ceci:
<c:when test="${dp.status == VALID}">
Je préfère la dernière option (3), même si elle utilise également un scriptlet. C'est parce qu'il l'utilise seulement lorsque vous définissez la valeur. Plus tard, vous pouvez l'utiliser en plus complexe EL expressions, de concert avec les autres EL conditions. Alors que dans l'option (1) vous ne pouvez pas utiliser un scriptlet et une expression EL dans l' test
d'attribut d'un seul when
balise.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.