0

ビューにさらなる機能を提供するために、いくつかのヘルパー クラスを作成しました。たとえばButton、カスタム HTML をレンダリングしてボタン要素を表示するクラスがあります。これらのクラスはプレーンな Scala で書かれており、Play のテンプレート ファイルを使用しません。@Button( "label", ... )しかしもちろん、私は自分のビューの中から好きなようにそれらを呼び出すことができます (そしてしたいです) 。

しかし、私が直面している問題は私のtoString方法です。

class Button( val label: String, ... )
{
    override def toString: String =
    {
        <a ...> ... </a>.toString
    }
}

残念ながら、これはビューで HTML 文字を&lt;etc. にエスケープします。

Scala の XML を Play ビューに正しくエクスポートするにはどうすればよいですか? 私はXMLに固執し、そもそも文字列として記述したくありません...

4

1 に答える 1

1

Playで遊んだことはありませんが、グーグルで簡単に検索すると次のようになります。

https://groups.google.com/forum/?fromgroups=#!topic/play-framework/WiDo3WJnC9s

はい、すべての出力はエスケープされ、play.templates.Htmlタイプにラップされます。

したがって、エスケープメカニズムを制御する場合は、動的式で直接Htmlを返すようにします。
@Html("<strong>Do not escape</strong>")

XMLを最初に文字列に書き込むことは避けられませんが、それが主な問題ではないと思います:)

于 2013-02-28T21:56:45.610 に答える