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

来源:互联网 发布:sql*plus不能启动 编辑:程序博客网 时间:2024/06/06 18:54

简单介绍

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

2)介绍

Struts2中的property标签

[html] view plain copy
  1. <s:property value="...."/>  

用于获取ognlcontext对象中的属性值,亦称为数据标签。其中value的值为具体的属性名称。

获取值时,一般有两种情况:

1)在获取request/session/application/attr/parameters这五个范围时,需要明确指定范围,比如

[html] view plain copy
  1. <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

[html] view plain copy
  1. <s:property value="'string'">  

注意,在value里面的字符串string外面加了单引号,这样不会将string解析成ognl表达式了。.


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

1)value为String对象时,一些常用的String子函数使用

[html] view plain copy
  1. string.length() //字符串长度  
  2. string.substring(0,130) //按起末位取子串  

2)value为List时

在获取List的大小时,可以使用其变量的size值,比如取List对象group的数组长度

[html] view plain copy
  1. <s:property value="groups.size" />  

3)value内还可以写表达式,比如输出一个整型变量page的+1值

[html] view plain copy
  1. <s:property value="page+1" />    

0 0
原创粉丝点击