我是Grails的新手。我喜欢可以轻松生成所有视图的想法,但是现在当我想在f:table
中自定义出生日期列的显示样式时我遇到了一些问题(据我所知,这来自字段插件)。列的值显示为
2017-09-27 00:00:00 ICT
_table.gsp
<g:each in="${collection}" var="bean" status="i">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<g:each in="${domainProperties}" var="p" status="j">
<g:if test="${j==0}">
<td><g:link method="GET" resource="${bean}"><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" theme="${theme}"/></g:link></td>
</g:if>
<g:elseif test="${p.name instanceof java.util.Date}">
<td>Some style here</td>
</g:elseif>
<g:else>
<td><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" theme="${theme}"/></td>
</g:else>
</g:each>
</tr>
</g:each>
我是否必须覆盖插件的_table.gsp
?如果有,怎么样?或者有更好的方法吗?
答案 0 :(得分:2)
有多种方法可以实现,请参阅文档here
执行此操作的一种方法是在名称与您尝试自定义的字段相同的子目录中创建名为_displayWrapper.gsp
的文件,例如如果您的域名被称为Person
&amp;日期字段为dob
您要创建以下内容:
/views/person/dob/_displayWrapper.gsp
然后在_displayWrapper.gsp中,您可以访问一堆字段,例如整个bean,或者在这种情况下,您可能只想要值,如下所示:
<g:formatDate date="${value}" format="EEE d MMM yyy HH:mm:ss" />
这应该以{{1}}。
中指定的格式呈现日期字段