使用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>
输出时,会多输出一个换行符。
