轉載地址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>