[grails] GrailsのGSPでスクリプトレット(<%=..%>)の出力でHTMLエスケープをデフォルトにする方法。
まず、Config.groovyで以下を設定。
grails.views.default.codec='html'
これによってGSP中で${}とかの出力はデフォルトでHTMLエスケープされるようになります。これはセオリー。問題は、これだけでは、<%= %>や<% %>の出力はHTMLエスケープされないということです。
なので、次に、レイアウトとかGSPページ中で以下を実行しておきます。
<% out = codecOut %>
おしまい。
ちなみに、Rails2では<%= %>のデフォルト出力がHTMLエスケープされていなかったのですが、Rails3でされるようになりました。その真似というわけです。