我有一個字段使用日期/時間選擇器生成隱藏字段的表格,其日期爲&時間爲英國格式dd/MM/yy HH:mm通過使用的JavaScript。這被提交給一個struts2的操作,這個操作使用java.util.Date來獲取字段的getters &。Struts2日期解析
在JSP:
<s:form>
...
<input type="hidden" name="myDate" value="08/05/11 16:00" />
<s:submit />
</s:form>
在操作
public class MyAction
{
public void setMyDate(Date d)
{
this.d = d;
}
public Date getMyDate()
{
return d;
}
}
正如預期的那樣在Firefox中,當我提交表單自動支柱解析日期和我結束了在動作Date對象用正確的日期。
然而,在谷歌瀏覽器,當我提交表單的日期被解析,就好像它是在美國的格式MM/DD/YY HH:MM,結果我得到的8月5日5月8日,而不是。
檢查兩個瀏覽器發送的HTTP頭信息,儘管我的操作系統語言設置爲en_GB谷歌瀏覽器仍然發送'接受語言'標頭作爲en_US,這意味着struts必須使用此來確定使用什麼日期格式。
我只能假設這是谷歌瀏覽器中的一個錯誤,但鑑於我沒有自由修復谷歌瀏覽器在Struts 2中有一種方法,我可以指定一個固定的日期格式,它告訴Struts格式它應該用來解析表單參數中的日期?
您是否嘗試過使用設置爲所需的郎'request_locale'參數?該參數設置會話變量'WW_TRANS_I18N_LOCALE',並且對於我的應用程序,它將覆蓋'Accept-Language'設置語言。希望它可以幫助... http://struts.apache.org/2.1.2/struts2-core/apidocs/com/opensymphony/xwork2/interceptor/I18nInterceptor.html – 2011-09-13 15:34:08