由于我们已经更新到grails 2.0.1 (从2.0.0),所以通过bean字段显示的所有bean都错误地显示为"withBean“字段的第一个属性。在我下面发布的例子中,所有的firstName,lastName,dateOfBirth,contactNumber都被显示为'firstName‘(我们知道这不仅仅是错误的消息,因为否则第三个属性(dateOfBirth)将是一个日期选择器,而不仅仅是一个文本字段)。
有什么潜在的变通方法或建议吗?
(plugins.bean-field=1.0-rc3)


发布于 2012-05-02 22:34:07
我遇到了同样的问题,并有一个变通办法。
我将定制的beanfield模板提取到一个名为/shared/_beanfieldConfig.gsp的gsp模板中,然后在调用任何bean标记之前通过渲染将其包含进来。例如:
<g:render template="/shared/beanFieldConfig" />
<bean:withBean beanName='command'>
<bean:input property='username' />这在1.3.7中工作得很好,这意味着我可以在视图之间共享beanFieldConfig。
当升级到2.0.3时,我提出了与原始问题相同的问题。我发现我可以通过在每个视图中内联_beanFieldConfig的内容来解决这个问题。
Yuk,但至少这意味着我不需要重写所有的视图来使用替换插件(目前还没有)。
(编辑)有趣的是,尽管渲染模板中的beanField配置不起作用,但将其粘贴到标记库中可以。
所以,虽然之前我在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:beanFieldConfig/>替换<g:render template="/shared/beanFieldConfig" />,它就可以工作了。
https://stackoverflow.com/questions/9563502
复制相似问题