session:包含当前HttpSession的属性的Map,#session.userName,等价于session.getAttribute("username");
application:包含当前应用的ServletContext的属性的Map,#application.userName,等价于application.getAttribute("username");
attr:用于按request→session→application顺序访问某个属性,#attr.userName,等价于按顺序在request,session,application范围内读取userName属性,直到找到为止。
2)用于过滤和投影(projecting)集合
如person.{?#this.age>20}
?--获取集合中所有满足选择逻辑的对象(拿sql来做比例就是"select * from xxx where age>20")
^--获取集合中第一个满足选择逻辑的对象(拿sql来做比例就是"select top(1) from xxx where age>20")
$--获取集合中最后一个满足选择逻辑的对象
3) 用来构造Map
如#{'foo1':'bar1', 'foo2':'bar2'}
六、'%'运算符
用途是在标识的属性为字符串类型时,计算OGNL表达式的值,如:
<s:url value="test.jsp?age=#userlist['admin']">→test.jsp?#userlist['admin']---可见当字符串与OGNL表达式串起来时,只会被当作字符串对待,并不执行
<s:url value="test.jsp?age=%{#userlist['admin']}">→test.jsp?age=44---使用了该符号,就可以使得OGNL表达式被执行
七、'$'运算符
两个用途:
1)用于在国际化资源文件中,引用OGNL表达式。例如在资源文件中有一个标签fileName,则可以在资源文件中引用:
validation.require=${getText(fileName)} is required
2)在struts2配置文件中引用OGNL表达式,如:
<action>
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>--但这个albumId是从哪来的呢?
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36926-2.html
人家进了12海里距离