好 上文JSP 条件动作标签之if标签详解中 我们详细的说了说 if标签 但是 这个if是没有else的 多少对我们的编程习惯没有那么友好
所以 就出现了另外一种语法 由 choose when otherwise组成
和我们java中的switch语句
我们的基本语法就是 外面一个大的choose包裹起来 里面是很多 when 上面的 test属性是条件
如果when的条件都不成立 就执行 otherwise
我们这里可以在jsp中编写代码如下
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%
request.setAttribute("fraction",80);
%>
<c:choose>
<c:when test="${fraction < 60}">
<h2>不及格哦,请注意补考信息</h2>
</c:when>
<c:when test="${fraction == 60}">
<h2>勉强及格哦</h2>
</c:when>
<c:when test="${fraction > 60 && fraction < 80}">
<h2>恭喜,您已经超过百分之 97% 以上的考生了哦</h2>
</c:when>
<c:otherwise>
<h2>恭喜您 获得本次考生状元</h2>
</c:otherwise>
</c:choose>
</body>
</html>
这里 我们在request域中 存放了一个fraction值为 80
然后 我们判断
如果fraction小于 60 我们输出 h2标签 内容为 不及格哦,请注意补考信息
fraction等于 60 输出h2 标签 内容为 勉强及格哦
fraction 大于60 且 小于 80 输出h2标签 内容为 恭喜,您已经超过百分之 97% 以上的考生了哦
最后 otherwise 条件否则 那么 以上条件都不成立 分数一定在 80或以上 输出h2标签 内容为 恭喜您 获得本次考生状元
这里 我们运行界面
因为我们设置的是 80 所以触发到了 otherwise 否则的条件
没有任何问题
那么 这里 我们 fraction 改成 60 试试
然后 我们运行界面
这里 就达到了 勉强及格的文本
然后 我们需要强调几个点
1 choose 和 otherwise标签没有属性 但是 when必须要有test属性条件
2 choose标签中可以没有otherwise 但必须包含一个 when 不然就报错
3 otherwise只能有一个 且 必须放在最后一个 when后面 也是 不然就报错
4 choose标签中只能有when和otherwise标签 但 otherwise 和 when中可以写任何标签 如果在choose中写了其他标签 就会报错