Can we have a switch statement in JSP for XPath expression?


The <x:choose> tag works like a Java switch statement. With this, you can choose between a number of alternatives. Where the switch statement has the case statements, the <x:choose> tag has the <x:when> tags. In a similar way, a switch statement has the default clause to specify a default action and the <x:choose> tag has the <x:otherwise> tag as the default clause.

Attribute

  • The <x:choose> tag does not have any attribute.

  • The <x:when> tag has one attributes which is listed below.

  • The <x:otherwise> tag does not have any attribute.

The <x:when> tag has the following attributes −

AttributeDescriptionRequiredDefault
selectCondition to evaluateYesNone

Example

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>
<html>
   <head>
     <title>JSTL x:choose Tags</title>
   </head>
   <body>
      <h3>Books Info:</h3>
      <c:set var = "xmltext">
         <books>
            <book>
               <name>Padam History</name>
               <author>ZARA</author>
               <price>100</price>
            </book>
            <book>
               <name>Great Mistry</name>
               <author>NUHA</author>
               <price>2000</price>
            </book>
         </books>
      </c:set>
      <x:parse xml = "${xmltext}" var = "output"/>
      <x:choose>
         <x:when select = "$output//book/author = 'ZARA'">
            Book is written by ZARA
          </x:when>
          <x:when select = "$output//book/author = 'NUHA'">
             Book is written by NUHA
          </x:when>
          <x:otherwise>
             Unknown author.
          </x:otherwise>
       </x:choose>
   </body>
</html>

The following result will be displayed −

Books Info:
Book is written by ZARA

karthikeya Boyini
karthikeya Boyini

I love programming (: That's all I know

Updated on: 30-Jul-2019

243 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements