1、JSTL概述
JSTL标签库由标签库和EL表达式两个部分组成。JSTL标准标签库(Java Server Page Standard Tag Library),用来解决创建的页面的操作问题,包括输入输出、条件测试、遍历集合。
2、EL表达式语法
EL表达式的主要作用:
获取数据。EL表达式主要用于替换JSP页面中的脚本表达式,从Web作用域中获取Java对象,获取数据,包括访问Javabean的属性、List集合、Map集合、数组等。
执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面完成一些简单的逻辑操作。
获取Web开发常用对象。利用EL表达式的隐式对象,可以轻松获得Web常用对象的引用,从而获取这些对象中的数据。
EL表达式的格式:
${expression },使用${文本时需要变为\${
[]和.运算符
EL表达式可以返回任意类型的值。EL取值结果为一个带有属性的对象时,使用[]或.来访问其属性,实质是通过getter方法来访问其属性。访问形式如下:
${object["propertyName"]}
${object.propertyName}
propertyName不是有效的java变量名时,只能使用[]方式访问。如${header["accept-language"]}。
如果访问对象的属性也是一个对象,并且也带有属性,此时既可以使用[],也可以使用.运算符来访问第二个对象的属性。${pageContext.request.contextPath }
3、EL表达式的隐式对象
EL表达式中,存在11个隐式对象。
隐式对象
描述
例子
pageContext
JSP上下文对象。它可访问JSP隐式对象。
${pageContext.request.contextPath }
param
一个包含所有请求参数的Map。用于获取请求参数。
${param.loginame }
paramValues
包含所有请求参数的Map。
${paramValues.name }
header
请求标题。
${header.name }
headerValues
包含请求标题,以标题名作为key的Map。
${headerValues.name }
cookie
包含请求对象中所有cookie对象。
${cookie.name.value }
initParam
包含环境初始化参数。
${initParam.name }
pageScope
页面域
${pageScope.name }
requestScope
请求域
${requestScope.name }
sessionScope
会话域
${sessionScope.name }
applicationScope
应以程序上下文域
${applicationScope.name }
4个作用域的范围从小到大:pageContext、requestScope、sessionScope、applicationScope。省略scope对象时,默认查找范围由小到大。
4、EL应用举例
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
注册页面8
9
10
注册页面
11
12
13
14
登录名:15
16
17
18
爱好:19
20 足球
21 网球
22 篮球
23
24
25
26
27
28
29
30
31
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
获取隐式对象测试8
9
10
EL取值测试
11 param获取单个参数:${param.loginame }
12 paramValues获取多个参数:${paramValues.hobby[0] } - ${paramValues.hobby[1] }13 -${paramValues.hobby[2] }
14 header获取标题:${header.connection }
15 header获取标题:${header["accept-language"] }
16 headerValues获取标题:${headerValues["accept-language"] }
17 cookie获取JSESSIONID:${cookie.JSESSIONID }
18 cookie获取JSESSIONID名称:${cookie.JSESSIONID.name }
19 cookie获取JSESSIONID值:${cookie.JSESSIONID.value }
20 initParam获取初始化参数:${initParam.username }
21
22
web.xml配置全局初始化参数
1
2 username
3 AlphaJunS
4