2013-07-13 3 views
2

У меня есть и субъект user который принимает даты не образуют форму Struts2 с помощью плагина Jquery для datepickers и всякий раз, когда я изменить формат даты mm/dd/yyy/ в mm/yyyy он больше не устанавливает дату правильно больше, даже несмотря на то, пользователь по-прежнему должен выбрать месяц/день/год по умолчанию в календаре. Поэтому мой вопрос заключается в том, есть ли работа для этого или способ изменить, как данные передаются от формы к сущности, чтобы сделать эту работу?Struts 2 Jquery Datepicker выпуск Формат

Форма выдержка:

<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> 

Entity выдержка (даты 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