JSTL学习资料:http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
EL表达式:Expression language (表达式语言)
EL作用:替代JSP页面中数据访问时的复杂编码
El表达式
语法: ${EL expression}
${参数对象.属性名} ${param.name}
1.通过变量名取值
按照: Page>request>session>application 的作用域顺序依次查找,找到就返回,否则就返回null
eg: ${usernmae}
2.获取对象的属性值
- 点操作符 eg: ${user.name}
- []操作符 eg: ${user["name]}
3.获取集合元素 -List -Map 注意:当键为Int类型时 不能使用点操作符来获取值
list tests=new ArrayList();
${tests[0]}
${names[1]}
4.执行表达式
- 关系操作符
==(或eq) 等于 eg: ${23==5} 或 ${23eq5} 返回false
!=(或ne) 不等于 eg: ${23!=5} 或 ${23ne5} 返回true
<(或lt) 小于 eg: ${23<5} 或 ${23lt5} 返回false
>(或gt) 大于 eg: ${23>5} 或 ${23gt5} 返回true
<=(或le) 小于等于 eg: ${23<=5} 或 ${23le5} 返回false
<=(或gt) 大于等于 eg: ${23>=5} 或 ${23gt5} 返回true
- 逻辑操作符
&&(或and) 并且
||(或or) 或者
!或not) 非
- empty操作符
如果a为空的话 ${empty a} 返回true ${not empty a} 返回为false
EL隐式对象
- 作用域访问对象
PageScope
requestScope
sessionScope
applicationScope
- 参数访问对象
param
paramValues
- JSP隐式对象
pageContext
JSTL
JSTL:(Jsp Standard Tag Library) ---Jsp标准标签库
- 需要在项目中导入JSTLJar包(Java EE5.0 以上不需要导入)
- 在JSP页面添加taglib指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- 使用JSTL标签
JSTL标准标签库
核心标签库
通用标签
- set :设置指定范围(四大作用域)内的变量值
将value值储存到范围为scope的变量variable中(var为变量名)
eg:<c:set var="variable" value="value" scope="scope"/> 如果不设置scope则默认page
将value值设置到对象的属性中
eg:<c:set target="${name}" property="property" value="value" />
- out :计算表达式并将结果输出显示
指定默认值 eg:<c:out value="value" default="default"/> 没有找到value中指定的值就输出default的值
不指定定默认值 eg:<c:out value="value"/>
转义特殊字符 <c:out escapeXml="false" value="<a href="">"/> 可以输出a标签 false不对特殊字符转义,
- remove :删除指定范围内的变量
<c:remove var="variable" scope="scope" /> // var:指定删除的变量名 scope:指定域(范围)
条件标签
- if
<c:if test="condition" var="variable" scope="scope">
如果test为true则执行
</c:if>
test:接收true或false var:储存返回的true或false scope:指定把var存放在哪个作用域中
- choose : 实现 if else if else 语句
<c:choose>
<c:when test="condition1>
内容1
</c:when>
<c:when test="condition2">
内容2
</c:when>
<c:overwise test="condition2">
内容3
</c:overwise>
</c:choose>
<c:choose>、<c:when>和<c:otherwise>标签的使用必须符合以下语法规则:
<c:when>和<c:otherwise>不能单独使用,它们必须位于<c:choose>父标签中。
在<c:choose>标签中可以包含一个或多个<c:when>标签。
在<c:choose>标签中可以不包含<c:otherwise>标签。
在<c:choose>标签中如果同时包含<c:when>和<c:otherwise>标签,那么<c:otherwise>必须位于<c:when>标签之后。
迭代标签
- forEach :实现对集合对象的遍历
<c:forEach items="collection" var="varName” begin="start"
end="end" step="stepSize" varStatus="status">
操作
</c:forEach>