El表达式
1.全域查找
从小到大,就是按照page request session application四个域范围内分别查找,找到就返回属性,如果没找到就查找下一个,如果application也没有找到什么都不返还。
2.指定域
requestScope后接key值,其他类似
EL表达式不能直接调用对象的方法,只能调用类中的属性字段,自动调用该字段的getter方法,如果没有getter方法,则报错。
3.隐含对象
EL中一共有11个内置对象。
-pageContext
类型PageContext
它和JSP中pageContext是一个东西
作用 可以获取到JSP中其他的隐含对象
例如:可以获取项目名:
${pageContext.request.contextPath}
-pageScope
类型:Map<String,Object>
代表:page域中的属性
作用:可以获取到page域中的属性
-requestScope
类型:Map<String,Object>
代表:request域中的属性
作用:可以获取到request域中的属性
-sessionScope
类型:Map<String,Object>
代表:session域中的属性
作用:可以获取到session域中的属性
-applicatScope
类型:Map<String,Object>
代表:application域中的属性
作用:可以获取到application域中的属性
-param
类型:Map<String , String>
代表:用户发送的请求参数
作用:可以获取请求参数
用法:${param.参数名}
${param.name}
-paramValues
类型:Map<String, String[]>
代表:一个请求参数对应的多个值
用法:${paramValues.参数名[索引]}
-header
作用:可以获取到用户发送的请求头
类型:Map<String, String>
例如:获取用户的系统信息 ${header['User-Agent']}
${header.Host}
? -headerValues
类型:Map<String , String[]>
作用:可以获取一个头的多个值
? -initParam;
类型:Map<String, String>
作用:获取整个WEB应用的初始化参数
? -cookie
类型:Map<String, Cookie>
作用:用来获取Cookie
除了第一个,其他的内置对象都是Map类型的格式。
这11个对象可以在El表达式中直接使用
C标签的redirect重定向不需要添加项目名,会自动添加。
几个问题及答案
Java代码段可以使用EL吗?----------------不可以。
Js代码片段中可以使用El表达式吗?----可以
如何在JSP页面使用传过来的值的方法?
在Java代码段中从域中获取参数,运行方法,将返回值赋值到新的域中。然后在El表达式中获取新的值。