转载地址http://hi.baidu.com/nonyi_com/blog/item/acf1b8d74b6cf63e07088bc4.html
最近在使用struts2的<s:property/>标签时发现了几个比较特殊的用法,特拿来分享一下:
1.按需输出特定长度的字符
例:<s:property val ="name.s string(0,4)" />,只输出name的前四个字符,其中name是我需要输出的字符串。
2.格式化输出日期
例:<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'%'}
format.money = {0,number,\¤\#\#0.00}
3.带格式的字符串不输出格式(像fckedit之类的编辑器就可以给文本加样式而又想在页面上按原样式输出来而不是输出html标签,此种方式就比较适用)
例:我想输出的title的内容是“<p>测试</p>”,只
需加入属性escape="false"就行了:<s:property escape="false" val
="title"/>,这时输出来的就是“测试”,而不是“<p>测试</p>”。此属性也可以用于别的标签,具体的可以
自己摸索。
例子:
<td colspan="8" bgcolor="#FFFFFF">相关报告</td>
</tr>
<tr>
<td colspan="8" bgcolor="#FFFFFF">
<table width="635" cellspacing="1" cellpadding="0" border="0" bgcolor="#9ec7e6">
<tbody>
<s:iterator value="#newslist" id="newsl" status="status">
<tr <s:if test="#status.odd">style="background-color:#ffffff"></s:if>
<s:else>style="background-color:#eeeeee"></s:else>
<td> <s:property value="%{getText('{0,date,yyyy-MM-dd }',{updateTime})}"/></td>--时间直接格式化--
<td>
<s:if test="title.length>20">
<s:property value="title.substring(0,20)"escape="false"/>--截取字符串长度--
</s:if>
<s:else>
<s:property value="title" escape="false"/>
</s:else>
</td>
<td> <s:property value="author"/> </td>
<td> <s:property value="original"/></td>
</tr>
</s:iterator>
</tbody>
</table>
</td>