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 のカスタム実装を再作成することをお勧めします。このカスタム 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 に答える