0

我正在使用 g:render grails 标签来避免在我的应用程序中重复 HTML 的公共部分以重复。现在我需要在其中的一些中通过 message.properties 文件传递​​一些属性,例如部分的标题,以便可以翻译这些属性。为了使它工作,我使用了这个结构:

 <g:set var="title" value="${g.message (code: 'completed.thanks')}" />
 <g:render template="thankYou" contextPath="/completed/" model="[title:title,other:other]" />

但我想知道是否有更好的解决方案可以在渲染标签本身的模型中提供字符串。

4

1 回答 1

1

如果传递的属性很多,这种方法就不是最好的了。在这种情况下,我建议使用 customTaglib 重新创建 g:message 的 custo 实现。例如,此自定义 gMessage 可以通过约定查找以模型参数为前缀的属性。比在 gsp 的渲染中你只能在模型中设置前缀字符串。

 <g:render template="thankYou" contextPath="/completed/" model="[prefix: 'pagex']" />

在您的模板 gsp 中:

...
<custom:message code="completed.thanks" prefix="${prefix}"/>
<custom:message code="completed.byebye" prefix="${prefix}"/>
...

在属性文件中

pagex.thanks=bla bla bla
pagex.byebye=bla bla bla
pagey.thanks=bla bla bla
pagey.byebye=bla bla bla
于 2013-04-05T08:06:17.650 回答