struts2中# % $等的作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中# % $等的作用相关的知识,希望对你有一定的参考价值。
总是混淆这些取值符号,那个大哥能给详细通俗的说一下啊
一般有三种。1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.?#this.age>20。
3)用来构造Map,例如示例中的#’foo1′:’bar1′, ’foo2′:’bar2′。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name=”foobar” value=”#’foo1′:’bar1′, ‘foo2′:’bar2′” />
<p>The value of key “foo1″ is <s:property value=”#foobar[\'foo1\']” /></p>
<p>不使用%:<s:url value=”#foobar[\'foo1\']” /></p>
<p>使用%:<s:url value=”%#foobar[\'foo1\']” /></p>
3.$符号
$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在min同max之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为min为max之间!</message>
</field-validator>
</field>
</validators 参考技术A #代表从request或者session当中获取数据。如#request.a,#session.b;
$好像是jstl的吧
%解释:
在AddProducts.jsp的<s:textfield>的name为“%'products['+#stat.index+'].name'”,%exp格式表示使用OGNL表达式,上述表达式的相当于<%= "products[" + stat.index + "].name" %>,
更详细的内容看看这个吧
http://hi.baidu.com/jumpkang/blog/item/f7e469ca33e5b48cc8176850.html本回答被提问者采纳
以上是关于struts2中# % $等的作用的主要内容,如果未能解决你的问题,请参考以下文章