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> 密码:<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相似。