JSTL&EL
JSTL
<1> 实现了JSP页面代码的复用
<2> 使得可读性更强
导入
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
核心标签
表达式控制标签
out
- 输出常量
可在value属性中直接赋值
- 输出变量
变量不存在时可配合default属性输出默认值
<c:out value="" default="">
set
- 存值到Scope中
<c:set value="" var="" scope=""></c:set>
- 存值到JavaBean中
<jsp:useBean id="person" class="com.imooc.test.Person"></jsp:useBean>
<c:out target="{person}" property="name" value="hubiao"></c:set>
remove
- var属性必选
- scope属性可选
- 不能移除JavaBean中的属性
#######
<c:remove var=""></c:remove>
catch
- 包含哪些容易出错的标签
<c:catch var="error">
<c:set target="不存在"></c:set>
</c:catch>
<c:out value="${error}">
流程控制标签
if
<c:if test="${}" var="" scope=""></c:if>
choose when otherwise
<c:choose>
<c:when test="${}"> </c:when>
<c:otherwise> </c:otherwise>
</c:choose>
循环控制标签
forEach
- var设置变量名用于存储从集合中取出来的元素
- items指定要遍历的集合
- begin、end用于指定遍历的起始位置和终止位置
- varStatus通过index、count、first、last几个状态值,描述begin和end子集中元素的状态
- step默认一个一个遍历 =2 隔一个遍历一个
forTokens
用于浏览字符串,并根据指定的字符将字符串截取
- items指定被迭代的zifuchaun
- delims指定使用的分隔符
- var指定用来存放遍历到的成员
URL操作标签
import
- 可以把静态的或动态的文件包含到本JSP页面
- 同jsp:include的区别为: 只能包含一个WEB应用中的文件
- url被导入资源的URL路径
- context 相同服务器下其他的web工程,必须以"/"开头
- var以String类型存入被包含文件的内容
- Scope var变量的JSP范围
- charEncoding被导入文件的编码格式
- varReader 以Reader类型存储bei被包含文件的内容
redirect
- url 指定重定向页面的地址
- context 用于导入其他的web应用中的页面
url
动态生成一个String类型的URL
- value表示url绝对路径
- var 表示这个url
- scope 这个url的访问域
JSTL函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function">
EL Expression Language
格式
${表达式}
"." [] 运算符
${user.sex} $
<1> 包含特殊字符只能用[]
<2> [] 动态取值
变量
JSP内置对象 | EL名称 |
---|---|
Page | PageScope |
Request | RequestScope |
Session | SessionScope |
Application | ApplicationScope |