使用JSTL条件语句
时间:2018-11-15 12:56:03 来源:igfitidea点击:
JSTL也提供了所有基本的条件语句,使JSP页面的逻辑流程更容易阅读和维护。
条件语句
包括:if条件语句
和循环条件语句
if条件语句 <c:if>
最基本最简单的条件语句就是<c:if>
。<c:if>
操作用于基于布尔表达式值来输出body块的内容。
如果表达式的结果为真,则JSP容器将对body块的内容处理,并将输出返回到当前的JspWriter。
<c:if>
的语法如下:
<c:if test="expression"> <%-- body块内容 --%> </c:if>
if条件语句 <c:if>
示例
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <jsp:useBean id="cal" class="java.util.GregorianCalendar" /> <c:set var="hour" value="${cal.time.hours}" /> <c:if test="${hour >=0 && hour <=11}"> <c:out value="早上好" /> </c:if> <c:if test="${hour >=12 && hour <=17}"> <c:out value="下午好" /> </c:if> <c:if test="${hour >=18 && hour <=23}"> <c:out value="晚上好" /> </c:if>
首先,我们创建一个对象cal,它是类java.util.GregorianCalendar的一个实例。然后我们将对象的属性hours赋值给变量hour。最后,我们使用<c:if>
操作来判断时间并输出对应的问候消息。
循环条件语句
循环条件语句类似其他语言的swtich case
语句
在JSTL中, 可以使用 <c:choose>
, <c:when>
以及 <c:otherwise>
来实现多个选择。 从而替代多个<c:if>
的写法。
<c:choose> <c:when test="expression1"> <%-- body content for expression 1 --> </c:when> <c:when test="expression2"> <%-- body content for expression 2 --> </c:when> ... <c:otherwise> <%-- body content for otherwise --> </c:otherwise> </c:choose>
在一系列条件中,从上往下, 当条件为true
时,<c:when>
分支将执行,并将结果输出到JspWriter。
然后不再执行任何操作。
如果没有一个<c:when>
的条件是true
, <c:otherwise>
分支的内容将会被进行处理并显示输出到JspWriter中。
多个条件语句 示例
上面的例子可以使用 <c:choose>
, <c:when>
以及 <c:otherwise>
操作进行重写
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <jsp:useBean id="cal" class="java.util.GregorianCalendar" /> <c:set var="hour" value="${cal.time.hours}" /> <c:choose> <c:when test="${hour >=0 && hour <=11}"><c:out value="早上好"/></c:when> <c:when test="${hour >=12 && hour <=17}"><c:out value="下午好" /></c:when> <c:otherwise><c:out value="晚上好"/></c:otherwise> </c:choose>
注意:如果这样写:
<c:when test="${hour >=0 && hour <=11}"> <c:out value="早上好" /> </c:when>
输出时,会多输出一个换行符。