EL表达式和Ognl表达式,取数据的区别
EL表达式和Ognl表达式,取数据的区别
11.1、一般的EL表达式:${}查询变量的顺序为:
1,当前域,即作用域
2,page , request , session , application(从小到大,没有返回null
${}可以写在jsp页面的任何位置,包括字符串中
11.2、使用了Struts2后,在JSP中写的EL表达式(${})查询变量的顺序为:
1,作用域 ,当前域
2,值栈,ValueStack
3,ActionContext中的map集合 :
包括: request , session , application ,parameters ,attr集合,还
有ActionContext本身的集合 。这里面的查询顺序我就不知道
${}可以在jsp中,也可以在xml文件中(如在struts.xml文件里)
11.3、Strut2中,jsp,ognl表达式必须使用#key来取数据,
且必须指定根对象,如#session[‘age’],表示到ActionContext持有的Session域中取数据
不加#号,默认是到值栈中去取。
如:<s:property value=”name” >,意思是:#valuestack.name
可详细参考Struts2笔记中的ognl表达式
Ognl表达式遇到字符串,需要使用%{}转义
11.4、Ognl表达式取的数据都在ActionContext这个map集合中去
Ognl表达式必须使用#key来取数据。这个#就表示ActionContext这个map集合