Struts 2 и ModelDriven: плагин jQuery и плагин Dojo

Я использую Struts2 с ModelDriven для отправки формы.

Когда я использую datetimepicker тег Dojo и выберите дату из этого тега, форма отправляется правильно со значениями формы, заполненными в ModelDriven объект.

Но когда datepicker тег jQuery берется в форму и выбирается дата объекта ModelDriven имеют нулевые значения. Если дата не выбрана и форма отправлена, то она работает нормально.

Требуются ли какие-либо настройки, которые я пропустил для решения проблемы?

Я включил следующую банку для JQuery.

JQuery:

<sx:datepicker name="startDate" id="startDate" label="" cssStyle="width:275px; " 
minDate="0" displayFormat="dd/mm/y" changeMonth="true" changeYear="true" 
readonly="true" value="%{startDate}"/>

4 ответа

Удалить readonly="true" и все будет работать нормально.

readonly атрибут по умолчанию false говорит, что вход только для чтения.

Я уверен, что

name="startDate"

следует изменить на

name="yourmodel.startDate"

Показать больше кода для лучшей помощи...

Проблема заключалась в том, что Dojo принимает значение даты в JSP как Date в java, тогда как JQuery принимает его как строку.

И поэтому распорки находил setDate(String) и не setDate(Date) для JQuery.

Struts ожидает, что значение будет отправлено на сервер как значение, не зависящее от локали, в соответствии с RFC3 339 (гггг-MM-dd'T'HH: мм: сс), это то, что предоставляет тег dojo по умолчанию (теперь устаревший): http://struts.apache.org/2.0.12/docs/datetimepicker.html

Вы можете просто отправить: 2013-01-03 остальное необязательно.

JQuery Datepicker I использует мм / дд / гг. Чтобы изменить этот формат на ожидаемый Struts2, либо измените формат по умолчанию, используемый для презентации, либо установите altFormat, который изменяет то, что было введено, в формат, представленный во время отправки (так что если вам нравится "mm / dd / yy", вы можете просто установить altFormat в "yyyy-"). мм-дд "и получите желаемый эффект).

http://jqueryui.com/datepicker/

http://api.jqueryui.com/datepicker/

Как вы можете видеть, jQuery легко обеспечивает это, как это сделать с тегом... Я не знаю. Кто-то другой может взять эту информацию и расширить ее в другом ответе, если возможно, с помощью специальной техники тегов.

Другие вопросы по тегам