si...si no dentro de JSP o JSTL

Resuelto copenndthagen asked hace 13 años • 13 respuestas

Quiero generar un código HTML basado en alguna condición en un archivo JSP.

if (condition 1) {
    Some HTML code specific for condition 1
}
else if (condition 2) {
    Some HTML code specific for condition 2
}

¿Cómo puedo hacer eso? ¿Debería utilizar JSTL?

copenndthagen avatar May 09 '11 17:05 copenndthagen
Aceptado

¿Debería utilizar JSTL?

Sí.

Puede usar etiquetas <c:if>y <c:choose>para realizar renderizado condicional en jsp usando JSTL.

Para simular if , puedes usar:

<c:if test="condition"></c:if>

Para simular if...else , puedes usar:

<c:choose>
    <c:when test="${param.enter=='1'}">
        pizza. 
        <br />
    </c:when>    
    <c:otherwise>
        pizzas. 
        <br />
    </c:otherwise>
</c:choose>
Jigar Joshi avatar May 09 '2011 11:05 Jigar Joshi

Si solo desea generar texto diferente, un ejemplo más conciso sería

${condition ? 'some text when true' : 'some text when false'}

Es mucho más corto que c:choose .

KIR avatar Aug 30 '2011 11:08 KIR

La construcción para esto es:

<c:choose>
   <c:when test="${..}">...</c:when> <!-- if condition -->
   <c:when test="${..}">...</c:when> <!-- else if condition -->
   <c:otherwise>...</c:otherwise>    <!-- else condition -->
</c:choose>

Si la condición no es costosa, a veces prefiero simplemente usar dos <c:ifetiquetas distintas, ya que hace que sea más fácil de leer.

Bozho avatar May 09 '2011 11:05 Bozho

En caso de que quieras comparar cadenas , escribe el siguiente JSTL:

<c:choose>
    <c:when test="${myvar.equals('foo')}">
        ...
    </c:when>
    <c:when test="${myvar.equals('bar')}">
        ...
    </c:when>
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>
aebersold avatar Mar 16 '2014 14:03 aebersold
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<c:set var="val" value="5"/>
<c:choose> 
  <c:when test="${val == '5'}">
    Value is 5
  </c:when>
  <c:otherwise>
    Value is not 5
  </c:otherwise>
</c:choose>
Hiren Odedra avatar Jan 20 '2015 08:01 Hiren Odedra