Grails渲染标记和message.properties

时间:2013-04-05 02:37:58

标签: html grails internationalization

我正在使用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]" />

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

1 个答案:

答案 0 :(得分: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