【功能说明】<x:choose>动作用于嵌套使用<x:when>和<x:otherwise>动作标记,其语法格式如下:
<x:choose>
[<x:when select="testXPathExpression">
JSP elements
</x:when>] +
[<x:otherwise>
JSP elements
</x:otherwise>]
</x:choose>
<x:choose>动作没有属性。
【实例演示】
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<fmt:requestEncoding value="GB2312" />
<x:parse var="book" scope="application">
<c:import url="book.xml" charEncoding="GB2312" />
</x:parse>
<FORM method="POST" action="xml_061.jsp">
选择感兴趣的图书:</br>
<select name="bookname">
<x:forEach select="$book/books/book">
<option><x:out select="name" /></option>
</x:forEach>
</select>
<input type="submit" value="查看">
</FORM>
其中,xml_061.jsp的源代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<fmt:requestEncoding value="GB2312" />
<x:parse var="book" scope="application">
<c:import url="book.xml" charEncoding="GB2312" />
</x:parse>
<x:set var="selectBook" select="$book/books/book[name = $param:bookname]" />
<hr>
书名:<x:out select="$selectBook//name" /></br>
定价:<x:out select="$selectBook/price/@symbol" /><x:out select="$selectBook//price" /></br>
<x:choose>
<x:when select="$selectBook//type[. = '计算机']">
计算机类图书 <font color=red>七五折</font>
</x:when>
<x:when select="$selectBook//type[. = '文学']">
文学类图书 <font color=red>八八折</font>
</x:when>
<x:otherwise>
其他类图书 <font color=red>九五折</font>
</x:otherwise>
</x:choose>
其中,book.xml文档的内容如下:
<?xml version="1.0" encoding="GB2312"?>
<books>
<book>
<name>《JSP设计》</name>
<type>计算机</type>
<price symbol="¥">79.00</price>
</book>
<book>
<name>《精通Struts》</name>
<type>计算机</type>
<price symbol="¥">49.00</price>
</book>
<book>
<name>《杞人忧师》</name>
<type>文学</type>
<price symbol="¥">16.80</price>
</book>
<book>
<name>《服从》</name>
<price symbol="¥">15.80</price>
</book>
<book>
<name>《你在忙什么》</name>
<type>管理</type>
<price symbol="¥">25.00</price>
</book>
</books>
示例代码的执行效果如图9.9所示。

图9.9 使用<x:choose>动作
相关高级JSP教程的学习,我将在以后陆续推出,敬请关注:http://www.itgao.com