EL 与 JSTL
EL与JSTL的作用是为了减少JSP页面中的代码。
EL
EL(Expression Language):表达式语言 常用于取值
语法
EL 表达式以${
开头,以}
结束。
多个表达式可以连接在一起。
<%-- a + b = 8, c + d = 10--%>
<%-- 得到 810 --%>
${a+b}${c+d}
运算符:
EL表达式可以返回任意类型的值。如果EL表达式的结果是一个带有属性的对象,则可以利用[]
或者.
运算符来访问该属性。[]
是比较规范的形式,.
运算符则比较快捷。
${beanName["propertyName"]}
${beanName.propertyName}
隐式对象
pageContext 对象表示当前JSP页面的javax.servlet.jsp.PageContext
。它包含了所有其他的JSP隐式对象。
${pageContext.request}
applicationScope sessionScope requestScope pageScope 隐式对象用于获取某一范围内的值。默认情况下从小范围依次查找。
账户:<%= request.getAttribute("account") %>
密码:<%= request.getAttribute("pwd") %>
<%-- 使用EL表达式取值 --%>
账户:${ requestScope.account }
密码: ${pwd}
JSTL
JSTL(JavaServer Pages Standard Tag Library):JSP 标准标签库,是一个定值标签库的集合,常用于遍历集合,条件测试,数据操作等。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
其中前缀可以任意指定。
c:out
out 将结果输出到当前页面。
c:set
- 将数据放入作用域对象中,默认放入最小作用域
- 设置有界对象的属性
<%-- loc = request.location --%>
<%-- loc 的 city 属性设置为 Harbin --%>
Harbin
c:remove
删除有界变量
c:if
条件测试,并将结果保存在有界变量中。
Hey
${flag ? "Welcome to Harbin" : "Welcome"}
c:choose c:when c:otherwise
类似与 switch case default
Welcome to Harbin
Welcome to Dalian
Welcome
c:forEach
<%-- 固定次数重复 --%>
${x}
<%-- 集合对象遍历 --%>
begin
${status.count} ${location.city }
fin
属性 | 说明 |
---|---|
begin | 开始 |
end | 结束 |
step | 步长 默认1 |
varStatus | 状态 |
varStatus.first | 是否为第一个 |
varStatus.last | 否为最后一个 |
varStatus.index | 索引值(从1开始) |
varStatus.count | 循环次数 |
c:forTokens
遍历以特定分隔符分开的标识符
${word}