struts2 s:textfield 標籤輸出日期問題
struts2 s:textfield 標籤輸出日期時會省略掉兩位,從網上找來解決方法:
<s:date id="date1" name="date" format="yyyy-MM-dd"/>
<s:textfield name="date" value="%{date1}"></s:textfield>
還有其他方法,未測試:
struts2 中的預設的日期輸出並不符合我們的中文日常習慣,以下是我知道的在struts2中進行日期格式化輸出的幾種方式。
1、利用 <s:date>進行格式化,如:
<s:date format="yyyy-MM-dd"/>就是將屬性birthday按yyyy-MM-dd的格式進行輸出。
2、利用<s:param>進行格式化,如:
<s:textfield name="mydate">
<s:param name="value" ><s:date name="mydate" format="yyyy-MM-dd"/></s:param>
</s:textfield>
或者<input type="text" value="<s:date format="yyyy-MM-dd" />" />
3、通過國際化的方式:
首先在struts.properties中配置struts.custom.i18n.resources=globalMessages。
然後在globalMessages_zh_CN.properties和globalMessages_en_US.properties檔案中新增如下內容:
global.datetime = {0, date, yyyy-MM-dd HH:mm:ss}
global.date = {0, date, yyyy-MM-dd}
最後在頁面中使用下面的語句就可以實現日期的格式化輸出了:
<s:textfield name="birthday" value="%{getText('global.date',{birthday})}"/>
//golbal.date樣式
<s:textfield name="birthday" value="%{getText('global.datetime',{birthday})}"/>
//global.datetime樣式
相信以上的三種日期格式化方法足以解決你所遇到的問題。