我在grails 3中安装模板,文件在src / main / templates / scaffoldind中工作正常但是使用标签
<f:all bean="${propertyName}"/>
我在所有输入和f上都需要一个bootsrap twitter类:所有标签都不允许这个功能,所以我需要用单个字段替换标签,例如:
<%
props.each{
%>
<f:field bean="${propertyName}" property="${it.name}">
<g:textField name="${it.name}" value="${propertyName}?.${it.name}" class="form-control" />
</f:field>
...
<%
}
%>
我找到了这篇文章http://www.jakusys.de/blog/2008/12/grails-scaffolding-in-depth/,但是对于grails 2而不是grails 3,替换f的一些解决方案:正常输入的所有标记或添加类&#34;表单控制&#34;对所有f:所有输入
答案 0 :(得分:2)
如果您希望<f:all />
呈现的所有字段看起来都很漂亮,那么您需要为它们创建_field.gsp
模板。
您可以通过创建这四个gsp片段来创建通用模板(用于所有字段):
_wrapper.gsp
_widget.gsp
_displayWrapper.gsp
_displayWidget.gsp
在此目录中:
grails-app/views/_fields/default/
然后您可以替换
<%
props.each{
%>
<f:field bean="${propertyName}" property="${it.name}">
<g:textField name="${it.name}" value="${propertyName}?.${it.name}" class="form-control" />
</f:field>
...
<%
}
%>
在你的脚手架gsp中点击<f:all />
标签。
请参阅文档here
答案 1 :(得分:2)
当我尝试显示所有属性(不进行编辑)时,<f:display bean="${propertyName}" />
对我不起作用,所以这是我为了正常工作而做的,我创建了两个文件带有此模板的第一个/views/_fields/default/_displayWidget.gsp
:
<tr class="prop">
<td valign="top" class="name">${label}</td>
<td valign="top" class="value">${value}</td>
</tr>
以及使用此模板的第二个/views/templates/_fields/_list.gsp
:
<g:each in="${domainProperties}" var="p">
${body(p)}
</g:each>
实际上我只是覆盖原始模板_list.gsp(我使用grails v3.1)。