Мне кажется, я понимаю, почему это происходит (бла экземпляра домена, переданного обратно в gsp для рендеринга, не может содержать буквенные символы, потому что это целое число),
Правильно, обычно повторяетсяформа работает следующим образом:
class MyController {
def showForm() {
[bean: new Test()]
}
def processForm(Test bean) {
if (!bean.validate()) {
render view: 'showForm', model: [bean: bean]
} else {
// save the bean or whatever....
}
}
}
И поля формы в showForm.gsp
устанавливаются с использованием:
<g:textField name="blah" value="${bean.blah}"/>
Поскольку bean
нельзя вернуть в форму, содержащую значениянеправильный тип, эти значения будут «потеряны», если вы используете разметку выше.Тем не менее, эти значения все еще должны быть доступны в объекте params
, поэтому я думаю, что следующее должно работать (хотя не проверял его)
<g:textField name="blah" value="${bean.blah ?: params.blah}"/>
Можно определить один шаблон, который определяет логикуи стиль для каждого поля - вместо того, чтобы повторять его для каждого поля - используя новый плагин fields .