由于我们已经更新为grails 2.0.1(从2.0.0开始),所有通过bean字段显示的bean都被错误地显示为“withBean”字段的第一个属性。在我发布的示例中,[firstName,lastName,dateOfBirth,contactNumber]显示为'firstName'(我们知道它不仅仅是错误的消息,因为否则第3个属性(dateOfBirth)将是一个日期选择器,而不仅仅是文本字段。)
任何潜在的解决方法或建议?
(plugins.bean场= 1.0-RC3)
答案 0 :(得分:0)
我遇到了同样的问题,并且有一个解决方法。
我已经将自定义的beanfield模板提取到一个名为/shared/_beanfieldConfig.gsp
的gsp模板中,然后我在调用任何bean标签之前通过渲染将其包含在内。 e.g。
<g:render template="/shared/beanFieldConfig" />
<bean:withBean beanName='command'>
<bean:input property='username' />
这在1.3.7中运行良好,意味着我可以在视图之间共享beanFieldConfig。
升级到2.0.3时,我遇到了与原始问题相同的问题。我发现我可以通过在每个视图中内联_beanFieldConfig
的内容来解决这个问题。
Yuk,但至少这意味着我不需要重写我的所有观点来使用替换插件(还)。
(编辑) 有趣的是,尽管渲染模板中的beanField配置不起作用,但将其粘贴在taglib DOES中。
所以,虽然之前我在beanFieldConfig
<bean:inputTemplate>
<div class='input ${errors ? 'errors' : '' }'>
${label}
${field}
<g:if test="${errors}">
${errors}
</g:if>
</div>
</bean:inputTemplate>
如果我定义等效标签 -
def beanFieldConfig = {
bean.inputTemplate { m ->
m.with {
""" <div class='input ${errors ? 'errors' : '' }'>
${label}
${field}
${errors ?: ''}
</div>"""}
}
}
然后在我的gsp中用<g:render template="/shared/beanFieldConfig" />
替换<g:beanFieldConfig/>
,它可以正常工作。