简单介绍
1)涉及问题:取值时什么时候该加#,什么时候不加?
2)介绍
Struts2中的property标签
用于获取ognlcontext对象中的属性值,亦称为数据标签。其中value的值为具体的属性名称。
获取值时,一般有两种情况:
1)在获取request/session/application/attr/parameters这五个范围时,需要明确指定范围,比如
范围前面需要带#号才能正确获取属性值。
2)如果取ValueStack中的值时,是不需要带#的,可以直接取。
比如Action实例的属性值是存储在ValueStack中的,所以取Action中的属性是不需要带#号的。
然而,在使用时,后使用it去取对象属性时,是需要加#号的。
注:要正确获取Action中的属性值,必须在在action中设置了该属性的setter/getter方法,否则它不会被拦截器处理。
value参数的类型是object,可以理解为这个默认是会解析成ognl表达式的。
比如需要输入一个字符串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的数组长度
3)value内还可以写表达式,比如输出一个整型变量page的+1值