EL表达式和JSTL的总结

El表达式

1.全域查找

从小到大,就是按照page request session application四个域范围内分别查找,找到就返回属性,如果没找到就查找下一个,如果application也没有找到什么都不返还。

2.指定域

requestScope后接key,其他类似

 

EL表达式不能直接调用对象的方法,只能调用类中的属性字段,自动调用该字段的getter方法,如果没有getter方法,则报错。

3.隐含对象

EL中一共有11个内置对象。

-pageContext

类型PageContext

它和JSPpageContext是一个东西

作用 可以获取到JSP中其他的隐含对象

例如:可以获取项目名:

${pageContext.request.contextPath}

 

-pageScope

类型:Map

代表:page域中的属性

作用:可以获取到page域中的属性

 

-requestScope

类型:Map

代表:request域中的属性

作用:可以获取到request域中的属性

 

-sessionScope

类型:Map

代表:session域中的属性

作用:可以获取到session域中的属性

 

-applicatScope

类型:Map

代表:application域中的属性

作用:可以获取到application域中的属性

 

-param

类型:Map

代表:用户发送的请求参数

作用:可以获取请求参数

用法:${param.参数名}

 

${param.name}

 

 

-paramValues

类型:Map

代表:一个请求参数对应的多个值

用法:${paramValues.参数名[索引]}

 


 


-header

作用:可以获取到用户发送的请求头

类型:Map

例如:获取用户的系统信息 ${header['User-Agent']}

 

${header.Host}

 

?        -headerValues

类型:Map

作用:可以获取一个头的多个值

 

?        -initParam

类型:Map

作用:获取整个WEB应用的初始化参数

 

?        -cookie

类型:Map

作用:用来获取Cookie

 

 

除了第一个,其他的内置对象都是Map类型的格式。

11个对象可以在El表达式中直接使用

C标签的redirect重定向不需要添加项目名,会自动添加。


几个问题及答案

Java代码段可以使用EL吗?----------------不可以。

Js代码片段中可以使用El表达式吗?----可以

如何在JSP页面使用传过来的值的方法?

Java代码段中从域中获取参数,运行方法,将返回值赋值到新的域中。然后在El表达式中获取新的值。

你可能感兴趣的:(JavaWeb)