2013-09-27 94 views
0

如何在play framework視圖中從我的純scala塊生成html?從純scala塊生成html

以下代碼將直接在頁面中放置標記的文本,因爲不是'<'scala將'& lt'標記不呈現爲html,而是呈現爲純文本!

是否將變量作爲最後一條語句作爲塊執行的結果返回該變量值的正確方法?

@block() = @{ 
    var str = "<li>" 
    str += req.getPage 
    var += "</li>" 
    str 
} 

回答

0

Scala模板會自動轉義所有動態內容以保護您免受XSS攻擊。如果您確定您在頁面中放置的內容是可信的(即,不是由用戶輸入的),並且想要禁用此XSS保護(如果您不熟悉XSS,那麼請在這裏非常謹慎,您可能引入安全漏洞進入您的系統,如果你不100%瞭解你在做什麼),那麼你有兩個選擇,要麼換調用blockHtml當您使用它:

@Html(block()) 

或者,包裹的block返回值在Html

@block() = @{ 
    var str = "<li>" 
    str += req.getPage 
    str += "</li>" 
    Html(str) 
} 

您可以在T閱讀更多關於這他在本頁底部的標題爲「逃離」的部分中播放文檔:

http://www.playframework.com/documentation/2.2.x/ScalaTemplates