有两个不同类别的文本属性:createdBy和lastUpdatedBy。它们只是已登录用户的用户名。它们使用$ {grails-app} /views/_fields/string/widget.gsp中的_widget.gsp进行渲染。 _widget.gsp的外观如下:
<g:if test="${property == 'createdBy' || property == 'lastUpdatedBy' }">
<g:hiddenField name="${property}" value="${value}" />
</g:if>
<g:else>
<input type="text" name="${property}" value="" <g:if test="${required}">required=""</g:if> id="${property}" />
</g:else>
不幸的是带有星号的标签仍然被渲染。尝试保存时会告诉我createdBy和lastUpdatedBy是必需的,尽管它们在页面源中是隐藏字段,并已填充正确的值。
另外,我对“必需”的处理是否正确?
如何消除隐藏字段的标签和所需的星号的任何想法?
谢谢。
最佳答案
这是这样做的方法:
创建包含_wrapper.gsp的目录结构:
grails-app/views/${controller}/${action}/${property}/_wrapper.gsp
_wrapper.gsp看起来像这样:
<g:hiddenField name="${property}" value="${value}" />
仅在创建和编辑操作时才需要它。这意味着您可以将其复制并粘贴到所需的位置。很简单,只要知道如何做。
关于grails - 使用Grails Fields插件渲染隐藏字段而不是文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966416/