我正在使用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标签本身的模型中提供字符串。
答案 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