在jsp开发中,为了获取Servle域对象储存的数据,经常需要书写很多java代码,这样的做法会使得jsp页面混乱,难以维护,为此,jsp2.0规范中提到了EL表达式,EL是ExpressionLanguage的缩写,它是一种简单的数据访问语言。
EL格式:${表达式}
我们在一个表单填写账号和密码提交后在成功页面显示出账号密码。
这里就直接贴成功页面的代码
<%--
Created by IntelliJ IDEA.
User: YZQ
Date: 2018/7/29
Time: 20:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h1>登录成功</h1>
<h3>传统的取值方式</h3>
用户名:<%=request.getAttribute("account")%>
<br>
密码:<%=request.getAttribute("pwd")%>
<h3>EL表达式取值</h3>
<%--使用EL表达式取值--%>
用户名:${requestScope.account}
<br>
密码: ${pwd}
</body>
</html>
Web域相关对象
在EL表达式中,为了获取指定域中的数据,提供了pageScope、requestScope、sessionScope和applicationScope 4个隐式对象
如下是代码使用写法示例:
${pageScope.userName}
${requestScope.userName}
${sessionScopee.userName}
${applicationScope.userName}
foreach标签
begin :从哪个下标开始迭代,默认值为0
end:迭代到第几个,默认值为集合的长度
step:迭代的步长
varStatus:迭代项的状态变量名,可以获取迭代项的相关状态
用法:
<%--迭代标签 用于迭代集合--%>
<c:forEach items="${users}" var="user" begin="2" end="6" step="2" varStatus="userStatus">
<hr>
<span>${user.name}</span>:<span>${user.age}</span><br>
计数:${userStatus.count} <br>
步长:${userStatus.step} <br>
开始位置: ${userStatus.begin} <br>
结束位置:${userStatus.end} <br>
下标:${userStatus.index} <br>
是否是第一个:${userStatus.first} <br>
是否是最后一个:${userStatus.last}<br>
</c:forEach>