struts2中的ognl表达式_struts2 ognl表达式_struts2的ognl例题(2)

电脑杂谈  发布时间:2017-03-10 00:17:19  来源:网络整理

<s:propertyvalue="#myMap['foo1']"/>

<s:propertyvalue="#myMap['foo1']"/>

2、“%”符号的用途是在标签的属性被理解为字符串类型时,告诉执行环境%{}里的是OGNL表达式。struts2中的ognl表达式

这是一开始最让我不能理解的符号,原因是一些相关资源在表述时不太准备,经过一翻痛苦的探索,终于明白了它的用途。实际上就是让被理解为字符串的表达式,被真正当成ognl来执行。很有点类javascript里面的eval_r()功能,例如:

varoDiv=eval_r("document.all.div"index)

varoDiv=eval_r("document.all.div"index)

当index变量为1时,语句就会被当作varoDiv=document.all.div1

varoDiv=document.all.div1来执行。%{}就是起这个作用。举例:

<s:setname="myMap"value="#{'key1':'value1','key2':'value2'}"/>第1行

<s:propertyvalue="#myMap['key1']"/>第2行

<s:urlvalue="#myMap['key1']"/>第3行

<s:setname="myMap"value="#{'key1':'value1','key2':'value2'}"/>第4行

<s:propertyvalue="#myMap['key1']"/>第5行

<s:urlvalue="#myMap['key1']"/>第6行

上面的代码第2行会在页面上输出“value1”,而第3行则会输出"#myMap['key1']"这么一个字符串。如果将第3行改写成这样:

<s:urlvalue="%{#myMap['key1']}"/>

<s:urlvalue="%{#myMap['key1']}"/>

则输出为“value1”。

这说明struts2里不同的标签对ognl的表达式的理解是不一样的。如果当有的标签“看不懂”类“#myMap['key1']”的语句时,就要用%{}来把这括进去,“翻译”一下了。

3、“$”有两种用途

(1)、在国际化资源文件中,引用OGNL表达式。

(2)、在Struts2配置文件中,引用OGNL表达式:

<actionname="saveUser"class="userAction"method="save">

<resulttype="redirect">listUser.action?msg=${msg}</result>

</action>

<actionname="saveUser"class="userAction"method="save">


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36736-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...