1

Grailsでは、GSPテンプレートを使用して、メールプラグインで送信されるHTMLメールをレンダリングします。これは正常に機能しますが、GSPテンプレートは、messages.propertiesファイルから取得されるパラメーターを使用します。<br/>ここで、たとえばmessages.properties内でHTMLを使用したいのですが、メールではテキストとして表示され、タグは解釈されません。

GSPのパラメーターで.decodeHTML()を使用しようとしましたが、機能しませんでした。

どこでエンコード/デコードする必要がありますか、それともmessages.properties内でHTMLタグを使用することは可能ですか?

<%@ page contentType="text/html"%>
<html>
<body>
${variableWithHTMLTextFromMessagesProperties}
</body>
</html>
4

4 に答える 4

4

次のようなメッセージ タグを使用して、GSP でローカライズを行うことはできませんか? コントローラ -

sendMail {
    to "my@email.com"
    subject "cheese"
    html g.render(template:"myTemplate")
}

そして、_myTemplate.gsp で -

<%@ page contentType="text/html" %>
<html><head></head>
<body>
    <p>test: <g:message code="a.test"/></p>
</body>
</html>

そして、messages.properties で -

a.test=this <br/><br/> is a test

この方法は私 (Grails 1.3.1、メール 0.9) では問題なく動作します。受信した HTML メールに 2 つの改行が表示されます。このようにできない理由はありますか?

于 2010-07-06T12:17:59.530 に答える
2

ここで解決策を見つけました。最も簡単な方法は、<%=variableWithHTMLTextFromMessagesProperties%>の代わりに使用することです${variableWithHTMLTextFromMessagesProperties}。これにより、HTML エスケープが停止します。

于 2010-07-08T07:08:40.200 に答える
0

ドキュメントから:

<g:encodeAs codec="HTML">
   Profile for user ${user.name} is:
   <g:render template="/fragments/showprofile"/>
</g:encodeAs>
于 2010-07-02T14:46:20.927 に答える