2013-07-13 35 views
2

我有和實體user這是接收日期形式使用jQuery插件的日期選擇器和每日我將日期格式從mm/dd/yyy/更改爲mm/yyyy不再設置日期正確了,即使用戶仍然需要在日曆中默認選擇一個月/日/年。所以我的問題是,是否有解決這個問題的方法或改變數據如何從表單傳遞給實體的方式來實現這個工作?Struts 2 jquery日期選擇器格式問題

形式摘錄:

<tr> 
    <td style="border: 0px;">Contract Start-1</td> 
    <td style="border: 0px;"> 
    <sj:datepicker name="user.nat_gas_start1" displayFormat="mm/dd/yy" yearRange="20011:2020" value="currentUser.nat_gas_start1"/> 
    </td> 
</tr> 
<tr> 
    <td style="border: 0px;">Month Shopping For-1</td> 
    <td style="border: 0px;"> 
    <sj:datepicker name="user.nat_gas_end1" displayFormat="mm/yy" yearRange="20011:2020" value="currentUser.nat_gas_end1"/> 
    </td> 
</tr> 

實體摘錄(日期是Java,SQL):

public void setNat_gas_start3(Date nat_gas_start3) { 
    this.nat_gas_start3 = nat_gas_start3; 
} 

public Date getNat_gas_end1() { 
    return nat_gas_end1; 
} 

的形式執行和作用,這比寫現有的值,並將其傳遞到數據庫通過Hibernate。它之前一直在運行,直到我將結束日期格式切換爲mm/yyyy格式。

+0

如果日期轉換不正確,則使用自定義轉換器。 –

+0

這就是我想我可能不得不做的,但我試圖避免必須這樣做。 – gcalex5

回答

1

不應切換日期格式,日期格式「月/年」被錯誤地處理的,其結果是錯誤的日期值被轉換爲的動作。這些是正確日期格式的示例:

<sj:datepicker value="today" id="date3" name="date3" displayFormat="dd.mm.yy" label="Today" /> 
<sj:datepicker value="yesterday" id="date4" name="date4" displayFormat="mm/dd/yy" label="Yesterday" /> 
<sj:datepicker value="tomorrow" id="date5" name="date5" displayFormat="DD, d MM yy" label="Tomorrow" /> 
<sj:datepicker value="2004-08-14" id="date6" name="date6" displayFormat="d M, yy" label="String Value" /> 
+0

有沒有辦法在選擇後讓日期顯示爲'mm/yyyy',但仍然可以正確拉入日期而無需編寫自定義轉換器? – gcalex5

+1

手動編寫字符串設置器並解析日期字符串,但是使用那種格式您錯過了一天。 –

+0

這就是我最終要做的事情,我只是將它作爲一個字符串讀取,然後解析它爲一個日期,並將日期設置爲1,因爲對於這一點,它真的無所謂每月的哪一天我有。 – gcalex5