JSTL Choose When Otherwise Tag

These tags are used as a conditional statement in JSP.  The <c:choose> works like a Java switch statement in that it lets you choose between a number of alternatives. Where the switch statement has case statements, the <c:choose> tag has <c:when> tags. A a switch statement has default clause to specify a default action and similar way <c:choose> has <c:otherwise> as default clause.

Attribute:
The <c:choose> tag does not have any attribute.
The <c:when> tag has one attributes which is listed below.
The <c:otherwise> tag does not have any attribute.
The <c:when> tag has following attributes:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:choose> Tag Example</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<p>Your salary is : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
    <c:when test="${salary > 100000}">
        Salary is very good.
    </c:when>
    <c:otherwise>
        No comment sir...
    </c:otherwise>
</c:choose>
</body>
</html>

As you can see above, <c:choose>-<c:when>-<c:otherwise> tags JSP are similar to if-elesif-else blocks in JAVA. When you have multiple conditions and each of them produces different output, you can use <c:choose>-<c:when>-<c:otherwise>.

Make sure that there is no condition evaluation in <c:choose> block. This is enclosing tag for <c:when> and <c:otherwise> blocks.

<c:when> tag has condition evaluation capability and you can have multiple <c:when> blocks within single <c:choose> block. Each condition can be evaluated using test attribute of this statement.

<c:otherwise> block do not have any condition evaluation capability. It represents all conditions which are not covered by <c:when> statements. <c:otherwise> statement must be present in <c:choose> block.

<<Previous <<   || Index ||   >>Next >>

Previous
Next