JavaWeb——JSTL
二、使用核心标签库
3、流程控制标签
- JSTL 核心标签库提供了**<c:if>、<c:choose>、<c:when> 和 <c:otherwise>** 共四个标签用于控制流程。
3.1、<c:if>
- 该标签为条件判断标签,根据不同的条件处理不同的业务,其语法格式如下:
<c:if test="condition" var="name"[scope="scope"]/> <c:if test="condition" var="name" [scope="scope"]> expression </c:if>
- test:指定条件表达式,支持 EL。
- var:用于指定保存 test 属性的判断结果的变量名。
- 示例
<h2>1、<c:if></h2> <c:if var="key" test="${empty param.agent}"> <form name="form" method="post" action=""> <label for="agent">姓名:</label><input type="text" name="agent" id="agent"> <br> <br> <input type="submit" name="Submit" value="确认"> </form> </c:if> <c:if test="${!key}"> <b>${param.agent}</b>欢迎! </c:if>
- 效果如下:
3.2、<c:choose>
- <c:choose> 标签只能作为 <c:when> 和 <c:otherwise> 的子标签,其语法格式如下:
<c:choose> <c:when> 标签体 </c:when> <c:otherwise> 标签体 </c:otherwise> </c:choose>
- 示例:
<h2>2、<c:choose></h2> <c:choose> <c:when test="${empty param.str}"> <form name="form1" method="post" action=""> <label for="str">搜索条件:</label><input type="text" name="str" id="str"> <input type="submit" value="搜索"> </form> </c:when> <c:otherwise> ${param.str} 所得的搜索结果: </c:otherwise> </c:choose>
3.3、<c:when> 和 <c:otherwise>
- <c:when> 示例如下:
<h2>3、<c:when></h2> <c:set var="hour"> <%=new java.util.Date().getHours()%> </c:set> <c:set var="second"> <%=new java.util.Date().getMinutes()%> </c:set> <c:choose> <c:when test="${hour>1&&hour<6}">早上好!</c:when> <c:when test="${hour>6&&hour<11}">上午好!</c:when> <c:when test="${hour>11&&hour<17}">下午好!</c:when> <c:when test="${hour>17&&hour<24}">晚上好!</c:when> </c:choose> 现在的时间是:${hour}:${second}
- <c:otherwise> 示例如下:
<h2>3、<c:when></h2> <c:set var="hour"> <%=new java.util.Date().getHours()%> </c:set> <c:set var="second"> <%=new java.util.Date().getMinutes()%> </c:set> <c:choose> <c:when test="${hour>1&&hour<6}">早上好!</c:when> <c:when test="${hour>6&&hour<11}">上午好!</c:when> <c:when test="${hour>11&&hour<17}">下午好!</c:when> <c:when test="${hour>17&&hour<24}">晚上好!</c:when> </c:choose> 现在的时间是:${hour}:${second} <h2>4、<c:otherwise></h2> <% Random rmd = new Random(); %> <c:set var="luck"> <%=rmd.nextInt(10)%> </c:set> <c:choose> <c:when test="${luck==6}">恭喜!荣获一等奖!</c:when> <c:when test="${luck==7}">恭喜!荣获二等奖!</c:when> <c:when test="${luck==8}">恭喜!荣获三等奖!</c:when> <c:when test="${luck==9}">恭喜!荣获四等奖!</c:when> <c:otherwise>谢谢参与!!下次一定中奖!</c:otherwise> </c:choose>
- 效果如下: