Java Web学习总结(七) EL表达式和JSTL
1.EL表达式
简化jsp页面的书写,消除jsp页面中的java代码
-
基本语法
${} - EL不需要导包 - 在EL中调用属性, 其实是调用的getXXX()方法
-
基本用法
//jsp用法 <%=request.getAttribute("username")%> <%=request.getAttribute("password")%> //EL用法 ${username} ${password}
-
运算符
-
点运算符( . )
用于访问jsp页面中某些对象的属性
-
方括号运算符( [] )
功能与点运算符相同,但是当属性名包含一些特殊符号时,只能使用方括号运算符
- 可以处理数组
${requestScope.arr[0]}
- 可以容纳变量属性
- 可以处理数组
-
empty 运算符
用于判断某个对象(也适用于Set, Map, List)是否为null或" ", 基本语法如下
${empty var}
**注意: **
- 在应用EL表达式取值时, 没有数组的下标越界, 没有空指针异常, 没有字符串的拼接
- 当对象属性名称首字母大写时, 前台会出现拿不到数据的情况
-
-
EL隐式对象
隐含对象名称 描述 applicationScope application域 sessionScope session域 requestScope request域 pageScope page域 pageContext 可以用来获得其他的隐式对象 param 保存了所有请求参数的Map对象 paramValues 当一个请求有多个值时使用,返回的是一个String类型的数组, header 请求头字段 headerValues 请求头字段,返回的是一个String类型的数组 cookie cookie
2.JSTL
1.什么是JSTL
由SUN公司推出的"标准标签库"
2.下载与使用
1.下载
下载两个jar包
jstl包
standard
https://mvnrepository.com/artifact/jstl/jstl
https://mvnrepository.com/artifact/taglibs/standard
2.使用
使用时导入jar包后,在jsp页面使用taglib引入标签库即可
web工程引入jar包直接放入/WEB-INF/lib/ 中即可
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3.Core标签库
1.<c:out>
- 无标签体的情况
<c:out value="要显示的值,支持EL表达式" [default="默认显示的值"] [escapeXml="{true|false}"] />
- 有标签体的情况
<c:out value="要显示的值,支持EL表达式" [escapeXml="{true|false}"]>默认显示的值</c:out>
escapeXml 属性用于指定是否将">, < , & "等特殊字符进行HTML编码, 默认为true
2.<c:if>
<c:if test="逻辑表达式" var="指定逻辑表达式中变量的名字"
[scope="{page|request|session|application}"] />
3.<c:choose>
1.<c:when>
<c:when test=""></c:when>
- 必须在
<c:otherwise>
之前, 在<c:choose>
里面- 相当于if-else中的if部分
2.<c:otherwise>
<c:otherwise></c:otherwise>
- 没有属性, 必须作为
<c:choose>
最后出现的标签体
4.<c:forEach>
对集合对象进行循环迭代操作
属性 | 描述 |
---|---|
var | 指定当前迭代到的元素保存到page域中的名称 |
items | 指定将要迭代的集合对象 |
varStatus | 指定当前迭代信息的对象, 有以下属性:count, index, first, last |
begin | 开始的索引, 默认为0 |
end | 结束的索引 |
step | 迭代的步长 |
//例子, users是servlet保存在request作用域中的一个map对象
<c:forEach items="${requestScope.users}" var="user">
${user.key} ${user.value}<br/>
</c:forEach>
5.<c:param>
用于在URL地址中附加参数, 它通常嵌套在
<c:url>
标签内使用
- 基本语法
<c:param name="name" value="value">
6.<c:url>
用以在jsp页面中构造一个新的地址
- 基本语法
<c:url value="value">
<c:param></c:param>
</C:url>
<c:url>
有以下基本属性
属性 | 描述 |
---|---|
value | 指定构造的URL |
context | 指定导入同一个服务器下其他Web应用的名称 |
var | 指定构造的URL的变量名称 |
scope | 指定保存的域对象 |
//例子,这里填的value的值为相对地址
<c:url value="show.jsp" var="user">
<c:param name="username">zs</c:param>
<c:param name="password">123</c:param>
</c:url>
<a href="${user}">登陆</a>