У меня есть приложение с доменом , который простирается от SecUser (класс пользователя безопасности в Spring Secrity Core). В этом домене (Пользователь) у меня есть серверные поля, и один из них: Дата рождения Дата. Леса создают знак g: datePicker, но мне не нравится стиль.Поле даты в домене и g: textField тег не работает в Grails
Я хотел бы реализовать, например: Datepicker для Boostrap (http://www.eyecon.ro/bootstrap-datepicker/), но эта библиотека использует тип ввода = «текст» поле.
На мой взгляд (.gsp), если я помещал ввод текста, сохранений и обновляют действия не работают, потому что в моем контроллере, когда я получаю userInstance.birthDate значение равно нулю.
Если я установил тег g: datePicker, мой контроллер правильно получит значение.
Как я могу решить эту проблему? Спасибо.
EDITED:
Кодекс Datepicker Bootstrap на мой взгляд:
<div class="input-group date date-picker" data-date-format="dd-MM-yyyy" data-date-end-date="+0d">
<input type="text" id="birthDate" name="birthDate" value="${formatDate(format:'dd-MM-yyyy',date: userInstance?.birthDate)}" class="form-control form-shadow"/>
<span class="input-group-btn">
<button class="btn default" type="button">
<i class="fa fa-calendar"></i>
</button>
</span>
</div>
<span class="help-block">
<h5>
<g:message code="custom.date.picker.description" default="Select a date"/>
</h5>
</span>
Теперь я могу получить значение в мой контроллер с params.birthDate но следующей ошибки появляется:
Class java.text.ParseException
Message Unparseable date: "01-04-2016"
ПОСТАНОВИЛ:
Решение должно правильно анализировать в Datepicker для библиотеки Bootstrap. Эта библиотека использует другой парсер. Например, '01-04-2016' в Grails is 'dd-MM-yyyy' но в этой библиотеке есть: 'dd-mm-yyyy'.
В этой связи форматы появляются: https://bootstrap-datepicker.readthedocs.org/en/latest/options.html#format
Кроме того, необходимо добавить следующие строки в Config.groovy:
grails.databinding.dateFormats = [ 'dd-MM-yyyy', 'yyyy-MM-dd', 'yyyy-MM-dd HH:mm:ss.S' ]
Это решение не работает, потому что я получаю то же значение в моем контроллере: null. Я вижу: log.error (userInstance.birthDate). Я редактировал свой вопрос, чтобы добавить код ввода. –
@ JesúsIglesias в вашем поле ввода отсутствует атрибут 'name'. следовательно, «null» в контроллере. это должно быть '' – injecteer
Теперь. Я могу получить значение в моем контроллере, но я получаю следующую ошибку: Класс java.text.ParseException Сообщение Непревзойденная дата: «01-04-2016» –