20 - JSP Standard Tag Library (JSTL): Page 5 of 7

20.3.8 <c:choose> , <c:when> , <c:otherwise>

These tags are similar to switch statement with default case in java.

Consider <c:choose> as a switch , multiple <c:when> as case and <c:otherwise> as default which means we can have a multiple <c:when> and single <c:when> in a <c:choose> tag.

Syntax is like below –

<c:choose>
<c:when test=”” />
</c:when>
<c:when test=”” />
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>

<choose> and <c:otherwise> do not have any attributes but <c:when> has a mandatory test attribute

Lets create cchoose.jsp to demonstrate the <c:choose> tag like below

<html>
  <head>
    <title> c:choose tag example </title>
  </head>
  <%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
  <body>
    <c:setvar="bonus" value="2000" />
    <c:choose>
    <c:when test="${bonus < 1000}">
    <c:out value="Bonus is less than $ 1000!!!" />
    </c:when>
    <c:when test="${bonus > 1000}">
    <c:out value="Bonus is greater than $ 1000!!!" />
    </c:when>
    <c:otherwise>
    <c:out value="No conditions match" />
    </c:otherwise>
    </c:choose>
  </body>
</html>

Access cchoose.jsp by hitting http://localhost:8080/jsp-tutorial/cchoose.jsp

20.3.9 <c:forEach>

This tags is similar to loops in java and used for iteration over a collection.

Following attributes can be used with this tag

a)var- counter variable name

b)items-scoped collections on which iteration has to perform

c)begin is the initial counter value.

d)end- last value or limit

e)step- increment to be done in counter value after each run

f)varStatus- variable to expose the loop status

Lets create cforEach.jsp to demonstrate the <c:forEach> tag like below

<html>
  <head>
    <title> c:forEach tag example </title>
  </head>
  <%@page import="java.util.*" %>
  <%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
  <body>
    <c:forEachvar="i" begin="1" end="10">
    <c:out value="Value of counter is ${i} "></c:out>
    <br/>
    </c:forEach>
    <hr/>
    <c:forEachvar="i" begin="1" end="10" step="2">
    <c:out value="Value of counter is ${i} with step 2"></c:out>
    <br/>
    </c:forEach>
    <hr/>
    <%
     List<String> list = newArrayList<String>();
     for(inti=0;i<10;i++)
     {
      list.add("Item" + i);
     }
     request.setAttribute("list", list);
    %>
    <c:forEach items="${list}"var="item" begin="0" end="9"varStatus="i">
    Value at ${varStatus.index} is  : ${item}
    <br/>
    </c:forEach>
  </body>
</html>

Access cforEach.jsp by hitting http://localhost:8080/jsp-tutorial/cforEach.jsp

20.3.10 <c:forTokens>

This tags is similar to <c:forEach> and is used break a string into tokens and iterate through each of the tokens.

Following attributes can be used with this tag

a)var- counter variable name

b)items- scoped collections on which iteration has to perform

c)begin is the initial counter value.

d)end- last value or limit

e)step- increment to be done in counter value after each run

f)varStatus- variable to expose the loop status

g)delims- characters to use as delimeter.

Lets create cforTokens.jsp to demonstrate the <c:forTokens> tag like below

<html>
  <head>
    <title> c:forTokens tag example </title>
  </head>
  <%@page import="java.util.*" %>
  <%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
  <body>
   <c:forTokens items="Apple,Orange,Banana"var="i"delims=",">
   <c:out value="Value  is ${i} "></c:out>
   <br/>
   </c:forTokens>
   <hr/>
  </body>
</html>

Access cforTokens.jsp by hitting http://localhost:8080/jsp-tutorial/cforTokens.jsp

 

Like us on Facebook