生活随笔
收集整理的這篇文章主要介紹了
Struts2 Date类型转换问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
來源:http://blog.csdn.net/cowboy324/article/details/6704716
? 在Struts2中,一般的內(nèi)置類型都會(huì)在由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換.但是Date類型好像有時(shí)候行,有時(shí)候不行。比如我這次,本地運(yùn)行正常,一上測(cè)試服務(wù)器就不行了。個(gè)人實(shí)驗(yàn)發(fā)現(xiàn)造成這種問題的原因是由于不同的瀏覽器選擇的優(yōu)先顯示頁面的語言不同造成的。一般來說,(zh_CN)中文優(yōu)先的話,struts默認(rèn)只支持2000-1-1這種格式的轉(zhuǎn)換,(en_US)英文優(yōu)先,struts默認(rèn)只支持1/1/2000這種格式的轉(zhuǎn)換。
??????因此要想保證系統(tǒng)一定要正確第對(duì)Date類型進(jìn)行轉(zhuǎn)換,就要寫一個(gè)全局的類型轉(zhuǎn)換類,進(jìn)行Date與String之間的類型轉(zhuǎn)換。
??????這個(gè)轉(zhuǎn)換類是從網(wǎng)上的例子修改所得,這里非常感謝原作者:
?
package?com.great.util;?? ?? import?java.text.DateFormat;?? import?java.text.SimpleDateFormat;?? import?java.util.Date;?? import?java.util.Map;?? ?? import?com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;?? ?? public?class?DateConverter?extends?DefaultTypeConverter?{?? ????private?static?final?DateFormat[]?ACCEPT_DATE_FORMATS?=?{?? ????????????new?SimpleDateFormat("dd/MM/yyyy"),?? ????????????new?SimpleDateFormat("yyyy-MM-dd"),?? ????????????new?SimpleDateFormat("yyyy/MM/dd")?};?//支持轉(zhuǎn)換的日期格式??? ?? ????@Override??? ????public?Object?convertValue(Map?context,?Object?value,?Class?toType)?{??? ????????if?(toType?==?Date.class)?{??//瀏覽器向服務(wù)器提交時(shí),進(jìn)行String?to?Date的轉(zhuǎn)換??? ????????????Date?date?=?null;??? ????????????String?dateString?=?null;??? ????????????String[]?params?=?(String[])value;??? ????????????dateString?=?params[0];//獲取日期的字符串??? ????????????for?(DateFormat?format?:?ACCEPT_DATE_FORMATS)?{??? ????????????????try?{??? ????????????????????return?format.parse(dateString);//遍歷日期支持格式,進(jìn)行轉(zhuǎn)換??? ????????????????}?catch(Exception?e)?{??? ????????????????????continue;??? ????????????????}??? ????????????}??? ????????????return?null;??? ????????}??? ????????else?if?(toType?==?String.class)?{???//服務(wù)器向?yàn)g覽器輸出時(shí),進(jìn)行Date?to?String的類型轉(zhuǎn)換??? ????????????Date?date?=?(Date)value;??? ????????????return?new?SimpleDateFormat("yyyy-MM-dd").format(date);//輸出的格式是yyyy-MM-dd??? ????????}??? ?????????? ????????return?null;??? ????}?? }??
?
??????在根目錄下創(chuàng)建xwork-conversion.properties文件,并在里面添加下面語句,注冊(cè)類型轉(zhuǎn)換器
java.util.Date=com.great.util.DateConverter
其中的com.great.util.DateConverter是日期轉(zhuǎn)換類包含命名空間的全稱。
總結(jié)
以上是生活随笔為你收集整理的Struts2 Date类型转换问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。