首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示错误bean属性的Grails "bean:input“(bean字段)

显示错误bean属性的Grails "bean:input“(bean字段)
EN

Stack Overflow用户
提问于 2012-03-05 16:16:55
回答 1查看 388关注 0票数 3

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

有什么潜在的变通方法或建议吗?

(plugins.bean-field=1.0-rc3)

EN

回答 1

Stack Overflow用户

发布于 2012-05-02 22:34:07

我遇到了同样的问题,并有一个变通办法。

我将定制的beanfield模板提取到一个名为/shared/_beanfieldConfig.gsp的gsp模板中,然后在调用任何bean标记之前通过渲染将其包含进来。例如:

代码语言:javascript
复制
<g:render template="/shared/beanFieldConfig" />
<bean:withBean beanName='command'>
<bean:input property='username' />

这在1.3.7中工作得很好,这意味着我可以在视图之间共享beanFieldConfig。

当升级到2.0.3时,我提出了与原始问题相同的问题。我发现我可以通过在每个视图中内联_beanFieldConfig的内容来解决这个问题。

Yuk,但至少这意味着我不需要重写所有的视图来使用替换插件(目前还没有)。

(编辑)有趣的是,尽管渲染模板中的beanField配置不起作用,但将其粘贴到标记库中可以。

所以,虽然之前我在beanFieldConfig中

代码语言:javascript
复制
<bean:inputTemplate>
<div class='input ${errors ? 'errors' : '' }'>
    ${label}
    ${field}
    <g:if test="${errors}">
        ${errors}
    </g:if>
</div>
</bean:inputTemplate>

如果我定义一个等价的标签-

代码语言:javascript
复制
def beanFieldConfig = {
    bean.inputTemplate { m ->
        m.with {
        """ <div class='input ${errors ? 'errors' : '' }'>
    ${label}
    ${field}
    ${errors ?: ''}
</div>"""}
    }
}

然后在我的gsp中用<g:beanFieldConfig/>替换<g:render template="/shared/beanFieldConfig" />,它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9563502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档