s:property 标签——value属性使用事项

简单介绍
1)涉及问题:取值时什么时候该加#,什么时候不加?


2)介绍
Struts2中的property标签
<s:property value="...."/>
用于获取ognlcontext对象中的属性值,亦称为数据标签。其中value的值为具体的属性名称。


获取值时,一般有两种情况:
1)在获取request/session/application/attr/parameters这五个范围时,需要明确指定范围,比如
<s:property value="#request.属性名" />
范围前面需要带#号才能正确获取属性值。


2)如果取ValueStack中的值时,是不需要带#的,可以直接取。
比如Action实例的属性值是存储在ValueStack中的,所以取Action中的属性是不需要带#号的。
然而,在使用<s:iterator id="it" value="attrName">时,后使用it去取对象属性时,是需要加#号的。

注:<s:property>要正确获取Action中的属性值,必须在在action中设置了该属性的setter/getter方法,否则它不会被拦截器处理。


value参数值介绍
value参数的类型是object,可以理解为这个默认是会解析成ognl表达式的。

比如需要输入一个字符串string
<s:property value="'string'">
注意,在value里面的字符串string外面加了单引号,这样不会将string解析成ognl表达式了。.

故value的值解析成OGNL表达式,在此表达式内,有些对象的值的使用与java代码相似,但不相同,以下取几个例子

1)value为String对象时,一些常用的String子函数使用
string.length() //字符串长度  
string.substring(0,130) //按起末位取子串
2)value为List时
在获取List的大小时,可以使用其变量的size值,比如取List对象group的数组长度
<s:property value="groups.size" />
3)value内还可以写表达式,比如输出一个整型变量page的+1值
<s:property value="page+1" />

原文地址:http://blog.csdn.net/wenlele/article/details/6843067
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章