2013-02-28 41 views
0

我創建了一些輔助類來爲我的視圖提供更多的功能。例如。我有一個類Button,它應該呈現一些自定義的HTML來顯示一個按鈕元素。這些類是用普通的Scala編寫的,並且不使用Play的模板文件。但當然我仍然可以(並且想要)從我的觀點中稱他們爲@Button("label", ...)如何將Scala的XML輸出打印成Play!視圖?

但是,我面臨的問題是我的toString方法。

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

不幸的是,這會在視圖中將HTML字符轉義爲&lt;等。

如何正確導出Scala的XML到播放視圖?我想,要堅持用XML,而不是寫出來的字符串排在首位...

回答

1

未與劇中飾演,但快速谷歌搜索想出了這個:

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

是的,任何輸出將被轉義幷包裹在play.templates.Html 類型中。

所以,如果你想控制的逃逸機制,只是讓你的 動態表情直接返回HTML:
@Html("<strong>Do not escape</strong>")

會不會避免先寫XML字符串,但我想這是不是主要問題:)

+0

謝謝,你給了我一個正確的方向提示。我所要做的就是從伴侶的apply方法中重新調用一個Html對象。將一些隱式的xmlToString轉換添加到我的幫助程序包中,可以使代碼保持清潔。 – Taig 2013-03-01 03:09:31