Y a-t-il une balise if-else disponible dans JSTL ?
Réponses
Trop de publicités?Vous devez utiliser ce code :
avec <%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>
y
<c:select>
<option value="RCV"
${records[0].getDirection() == 'RCV' ? 'selected="true"' : ''}>
<spring:message code="dropdown.Incoming" text="dropdown.Incoming" />
</option>
<option value="SND"
${records[0].getDirection() == 'SND'? 'selected="true"' : ''}>
<spring:message code="dropdown.Outgoing" text="dropdown.Outgoing" />
</option>
</c:select>
Outre la nécessité d'avoir une autre condition, dans de nombreux cas, vous devrez utiliser la même condition sur plusieurs sites.
Je préfère extraire la condition dans une variable :
<c:set var="conditionVar" value="#{expression}"/>
Et après cela, vous pouvez utiliser la variable de condition autant de fois que vous en avez besoin :
...
<c:if test="#{conditionVar}">
...
</c:if>
<c:if test="#{!conditionVar}">
...
</c:if>
...
<c:if test="#{conditionVar}">
...
</c:if>
<c:if test="#{!conditionVar}">
...
</c:if>
...
L'élément c:choose est bon pour les situations plus compliquées, mais si vous avez besoin d'un if else seulement, je pense que cette approche est meilleure. Elle est efficace et présente les avantages suivants :
- plus lisible si le nom de la variable est bien choisi
- plus réutilisable car la condition est extraite et la variable résultante peut être réutilisée pour d'autres ifs et dans d'autres expressions. peut être réutilisée pour d'autres ifs et dans d'autres expressions. Cela décourage d'écrire la même condition (et de l'évaluer) plusieurs fois.
Il s'agit d'une approche bonne et efficace du point de vue de la complexité temporelle. Une fois que l'on a obtenu une condition vraie, on ne vérifie plus aucune autre condition. Dans les If multiples, il vérifiera chaque condition.
<c:choose>
<c:when test="${condtion1}">
do something condtion1
</c:when>
<c:when test="${condtion2}">
do something condtion2
</c:when>
......
......
......
.......
<c:when test="${condtionN}">
do something condtionn N
</c:when>
<c:otherwise>
do this w
</c:otherwise>
</c:choose>
- Réponses précédentes
- Plus de réponses
0 votes
Duplicata possible de if...else dans JSP ou JSTL