45

Grails(<2.3)ではgrails.views.default.code='none'、grails Config.groovyをそのままにしておくと、GSPファイルで式を明示的にHTMLエンコードするのは私次第です${myValue?.encodeAsHTML()}

grails.views.default.codec='html"Config.groovyで設定した場合、HTMLエンコーディングはすべての式に対して自動的に行われます${myValue}

私の質問:デフォルトをに設定した場合、HTMLエンコーディングの動作が必要ないときに、1つの式に'html'戻るにはどうすればよいですか?'none'

4

6 に答える 6

64

コーデックを適用できるさまざまなレベルを要約すると、次のようになります。

Config.groovyを設定して、アプリケーションのgrails.views.default.codec='html'すべてでデフォルトでHTMLエスケープを取得し${expressions}ます。

次に、ページ全体をデフォルトでnoneに戻したい場合は、ディレクティブを使用します。

<%@page defaultCodec="none" %>

また

<%@ defaultCodec="none" %>

デフォルトでHTMLに設定されているページ内の1つの式のHTMLエンコーディングを無効にするには、<%=expression%>の代わりに表記を使用します${...}

于 2009-11-18T12:02:27.880 に答える
8

デフォルトのエンコーディングレベルがhtmlに設定されている場合

grails.views.default.codec = "html"

次に、ページ内の1つの式のhtmlエンコーディングを削除するために使用できます

$ {raw(expression)}

于 2015-03-30T12:37:12.990 に答える
7

$ {raw(myValue)}を使用してみてください。ページコーデックなどを宣言する必要はありません。

于 2015-02-01T00:06:06.757 に答える
5

GRAILS-1827から、特定のページのデフォルトコーデックを次のようにオーバーライドできるようです。

<%@ defaultCodec="HTML" %>

また

<%@page defaultCodec="HTML" %>

一部のバージョンでは(参照されている問題を参照)。

于 2009-11-17T18:37:40.947 に答える
1

私は解決策があるかもしれません。しかし、それがどれほど受け入れられているかはわかりません。

式のデフォルトのコーデックをHTMLに設定できますが、$ {}式の代わりにGSPで<%= myValue%>表記を使用して、エスケープされていない値をページに取得します。

于 2009-08-27T12:08:18.373 に答える
1

独自のタグを記述し、式を出力ストリームに直接書き込みます。

class YourTagLib {

    static namespace = "x"

    def unescaped = { attrs, body ->
        out << attrs.value
    }

}

GSPで使用します。

<x:unescaped value="${yourexpression}"/>
于 2014-02-26T20:07:15.617 に答える