Templates 替换<;f:全部/>;在自定义模板grails上使用普通字段标记
我在Grails3中安装模板,文件在src/main/templates/scaffoldind中,工作正常,但使用标签Templates 替换<;f:全部/>;在自定义模板grails上使用普通字段标记,templates,grails,scaffold,Templates,Grails,Scaffold,我在Grails3中安装模板,文件在src/main/templates/scaffoldind中,工作正常,但使用标签 <f:all bean="${propertyName}"/> 我需要一个bootsrap twitter类来处理所有输入,而f:all标记不允许这个函数,所以我需要用单个字段替换标记,比如: <% props.each{ %> <f:field bean="${propertyName}" propert
<f:all bean="${propertyName}"/>
我需要一个bootsrap twitter类来处理所有输入,而f:all标记不允许这个函数,所以我需要用单个字段替换标记,比如:
<%
props.each{
%>
<f:field bean="${propertyName}" property="${it.name}">
<g:textField name="${it.name}" value="${propertyName}?.${it.name}" class="form-control" />
</f:field>
...
<%
}
%>
...
我找到了这篇文章,但它是针对grails 2而不是grails 3的,它提供了一些解决方案,用于替换普通输入的f:all标记,或者为所有f:all输入添加类“form control”如果您想使由
呈现的所有字段都看起来漂亮且具有引导功能,您需要为它们创建\u 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
请参阅文档当我试图显示所有属性(无需编辑)时,这不适用于我的
,因此以下是我为使其正常工作所做的操作,我使用此模板创建了两个文件第一个/views/\u fields/default/\u displayWidget.gsp
:
<tr class="prop">
<td valign="top" class="name">${label}</td>
<td valign="top" class="value">${value}</td>
</tr>
<g:each in="${domainProperties}" var="p">
${body(p)}
</g:each>
实际上,我刚刚覆盖了原始模板(我使用的是GrailsV3.1)。它可以工作,但我尝试使用。关于_wrapper.gsp返回错误,您可以给出一个代码示例吗?请注意,我对Grails还比较陌生……可以举一些例子,比如_wrapper.gsp、_widget.gsp、_displayWrapper.gsp、,如果我创建这些通用模板gsp,然后尝试为域类生成视图,那么f:all标记是否会出现在生成的编辑和创建gsp中?我从何处获得_displayWrapper.gsp的示例?您是否能够解决此问题。你能分享一下代码吗?因为下面建议的方法似乎不适合我。