struts2 的标签中 property是什么意思?怎么用?
property标签<s:property value="...."/>用于得到OgnlContext上下文中的属性值,称为数据标签。
双引号内取request/session/application/attr/parameters这五个范围时,需要明确指定范围:
<s:property value="#request.属性名" />,范围前面带#号;
取ValueStack的值时,是不需要带#的,可以直接取,因为Action是存储在ValueStack中的,所以取Action中的属性不需要带#号,可以直接取。
在action中设置了该属性的setter/getter方法时,该属性才能取到,否则不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式。
如果需要输入一个字符串<s:property value="'ddd'">在value里面的ddd字符串外面加了单引号,这样就不会将ddd解析成ognl表达式了。
属性说明:
1.default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用"beijing"。
2.escape属性
默认为true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串,页面上将会显示一条横线。如果escapse为true,页面上将会显示字符串"<hr>".
按需输出特定长度的字符
例如:<s:property val="game.s string(0,4)" />,只输出game的前四个字符。格式化输出日期
例如:<s:property val="%{getText('format.date',{createdDt})}"/>,
'format.date'是输出的日期的格式,这个配置在国际化资源文件中:format.date ={0,date,yyyy-MM-dd } ,格式可以自己配置,createdDt是要输出的日期。
这种格式化输出日期的方法也适用于别的标签,<s:textfiled/>,是一种较通用的,其他格式如: format.time = {0,time}
format.number = {0,number,\#0.0\#\#}
format.percent = {0,number,\#\#0.00'%'}