条件控制

El可以从不同的域取出数据,但是不能进行逻辑处理,JSTL标签能通过:if、choose、when、otherwise进行条件控制。

1、<c:if>标签:

表单提交数据:

<body bgcolor="#00ffff">
<center>
    <h3>注册</h3>
    <form action="${pageContext.request.contextPath}/jstl.jsp" method="post">
        用户名:<input type="text" name="account" size="12"><br><br>
        &nbsp;&nbsp;&nbsp;&nbsp;密码:<input type="password" name="password" size="12"><br>
        <input type="submit" value="注册">
        <input type="reset" value="取消">
    </form>
</center>
</body>

<c:if>标签进行判断:

<body>
<%
String account=request.getParameter("account");
request.setAttribute("account",account);
%>

<c:if test="${requestScope.account=='zhai'}">
<h4>登录成功</h4>
</c:if>

<c:if test="${!(requestScope.account=='zhai')}">
<h4>登录失败</h4>
</c:if>
</body>

注意事项:对于EL标签内的字符串判断是否相等,不能用equals()方法,直接用==,即可。JSTL中没有if.......else语句。

2、<c:choose>、<c:when>、<c:otherwise>标签的使用:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%--导入核心标签库--%>
<%@ page import="java.util.Date"%>
<%@ page import="java.util.Calendar" %>
<html>
<head>
    <title>jstl</title>
</head>
<body>
<%
Calendar calendar=Calendar.getInstance();
Integer hour=new Integer(calendar.get(Calendar.HOUR_OF_DAY));
Date date=calendar.getTime();
    request.setAttribute("hour",hour);
    request.setAttribute("date",date);
%>
<c:choose>
    <c:when test="${hour>=0&&hour<=11}">
        <c:set var="hello" value="上午好!"></c:set>
    </c:when>

    <c:when test="${hour>=12&&hour<=17}">
        <c:set var="hello" value="下午好!"></c:set>
    </c:when>

    <c:otherwise>
        <c:set var="hello" value="晚上好"></c:set>
    </c:otherwise>
</c:choose>
        <c:out value="现在时间:${requestScope.date}"></c:out><br>
        <c:out value="${hello}"></c:out>
</body>
</html>

因为用到了Calender类,因此在对时间处理的时候,需要导入包,标签与switch.......case相似。

上一篇:java – Tomcat的字符编码问题


下一篇:[数据结构]--链栈的实现