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中# % $等的作用的主要内容,如果未能解决你的问题,请参考以下文章

struts2中各个jar包作用

struts2中各个jar包作用 (转)

struts2中action的作用

struts2 Action作用

struts2 中 Actionsupport 的作用

Struts2 ajax 主题在 IE10 中不起作用