struts標簽<s:date>的使用
最近研究struts時,發現這個標簽能夠解決很多格式上的問題,所以在網上搜索了一下這個內容,發現這篇文章寫得挺不錯的,挺有收獲。
struts 標簽 :<s:date/>
作用:用來格式化顯示日期的格式。
它可以用一種你指定的格式來顯示(如:“yyyy-MM-dd”),可以生成通俗易懂的注釋(如:in 2 hours,14 minutes),或者用預先定義的一個格式來顯示(如在properties配置文件中配置'struts.date.format').如果沒有找到這個struts.date.format,則會找默認的DateFormat.MEDIUM來格式化你的日期對象。當然如果在值棧中沒有找你對應的日期對象,則會返回空格。
可配置的標簽屬性有:
name
nice
format
1 nice屬性為true
i18n key | default |
struts.date.format.past | {0} ago |
struts.date.format.future | in {0} |
struts.date.format.seconds | an instant |
struts.date.format.minutes | {0,choice,1#one minute|1<{0} minutes} |
struts.date.format.hours | {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes} |
struts.date.format.days | {0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours} |
struts.date.format.years | {0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days |
2.nice屬性為false,format屬性指定的格式如:dd/MM/yyyy
在這種情況下,format屬性將被使用。
3 nice屬性為false,format屬性沒有指定
i18n key | default |
struts.date.format | if one is not found DateFormat.MEDIUM format will be used |
參數
Name |
Required |
Default |
Evaluated |
Type |
Description |
---|---|---|---|---|---|
format | false | false | String | 日 期格式 | |
id | false | true | String | 與普通html的id一樣 | |
name | true | true | String | 日 期的值 | |
nice | false | false | true | Boolean | 是否打印出更nicely的格式 |
例子:
<s:date name="person.birthday" format="dd/MM/yyyy" />
<s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
<s:date name="person.birthday" nice="true" />
<s:date name="person.birthday" />
問題1:
<s:date name="model.createDate" format="yyyy-mm-dd"/>老是將日期顯示錯誤,比如數據庫裏明明是2009-03-30,顯示就成了2009-30-31。
解決:應該多看看API。
字母 |
日期或時間元素 |
表示 |
示例 |
---|---|---|---|
G |
Era 標誌符 |
Text |
de>ADde> |
y |
年 |
Year |
de>1996de>; de>96de> |
M |
年中的月份 |
Month |
de>Julyde>; de>Julde>; de>07de> |
w |
年中的周數 |
Number |
de>27de> |
W |
月份中的周數 |
Number |
de>2de> |
D |
年中的天數 |
Number |
de>189de> |
d |
月份中的天數 |
Number |
de>10de> |
F |
月份中的星期 |
Number |
de>2de> |
E |
星期中的天數 |
Text |
de>Tuesdayde>; de>Tuede> |
a |
Am/pm 標記 |
Text |
de>PMde> |
H |
一天中的小時數(0-23) |
Number |
de>0de> |
k> |
一天中的小時數 (1-24) |
Number |
de>24de> |
K |
am/pm 中的小時數(0-11) |
Number |
de>0de> |
h |
am/pm 中的小時數(1-12) |
Number |
de>12de> |
m |
小時中的分鍾數 |
Number |
de>30de> |
s |
分鍾中的秒數 |
Number |
de>55de> |
S |
毫秒數 |
Number |
de>978de> |
z |
時區 |
General time zone |
de>Pacific Standard Timede>; de>PSTde>; de>GMT-08:00de> |
Z |
時區 |
RFC 822 time zone |
de>-0800de> |
當然,數據的日期格式又是另外一回事了,有時我也總會將HH24:mm:ss寫成數據庫的HH24:mi:ss.有時候寫的導數可能也會出現日期格式的問題,因為與數據庫的格式不一樣而出來導入錯誤。還在操作數據庫的時候可能也會有日期格式的困擾,如果用oracle的話,如果你寫的正確的日期格式,用String也可以的。Oracle的to_date函數可以將de>CHARde>, de>VARCHAR2de>, de>NCHARde>, or de>NVARCHAR2de> 類型數據轉換成de>DATEde>數據類型的值.
如果不指定格式,則會用默認的格式。默認的格式包為:de>NLS_TERRITORYde> 。更多的信息應該參考Oracle的文檔了。
請問Struts2的s:date標簽在action中一定要為date類型嗎?
private Date currentDate; ...... 如果不是,請問long,String,Integer如何用<s:date name ="currentDate" formate =""yyyy-MM-dd"/>
回答:
s:date標簽使用時,一定要是Date類型。
String型,數值型等其他類型,可以用以下方法: 先在resource文件中定義如下:
format.date_medium={0,date,medium}
format.date_ymd={0,date,yyyy/MM/dd}
format.date_time={0,date,yyyy/MM/dd hh:mm}
format.number_money={0,number,#,##0}
然後就可以自由的format了:
<s:text name="format.number_money">
<s:param name="value" value="salesPrice"/> </s:text>
<s:text name="format.date_ymd">
<s:param name="value" value="salesDate"/></s:text>
原帖地址:https://blog.sina.com.cn/s/blog_4dacfb010100vhqk.html
最後更新:2017-04-02 22:16:10
上一篇:
asp.net未能加載類型Global
下一篇:
Asp.net中的Impact字體
Android讀取SIM聯係人信息
1篇文章看懂峰值帶寬、流量、轉碼、連麥、截圖五大直播計費方式
CRM/PLM/SCM/MES與ERP的聯係與區別!
TextView在xml裏配置onclick事件
[LeetCode]19.Remove Nth Node From End of List
Java泛型知識點:泛型類、泛型接口和泛型方法
西北首個移動智慧城市落戶西安
C++編程規範之48:在構造函數中使用初始化代替賦值
Oracle中數據導出成CVS,EXCEL
Design and Application Learning of the Distributed Call Tracing System