2015-08-27 26 views
3

我有類似下面的模板:防止了Scalatra在HTML頁面中逃脫文字

val outMsg = s"${outMap.mkString("<p/>\n")}" 

    if (returnMode.equalsIgnoreCase("HTML")) { 
     response.setContentType("text/html") 
     displayPage("Keywords Query Results:", 
     // <p>Query: {jsonObject.get.toString}</p> 
     <p>Return: 
      {outMsg} 

現在什麼被髮送到瀏覽器:

419 iphone (2015-05-01)&lt;p/&gt; 
381 iphone (2015-05-01 Texas)&lt;p/&gt; 
259 iphone (2015-05-01 NY)&lt;p/&gt; 
148 iphone (2015-05-01 Tx)&lt;p/&gt; 
131 iphone (2015-05-01 CA)&lt;p/&gt; 
129 android (2015-05-01 TX)&lt;p/&gt; 

如何指示了Scalatra到「獨自離開文本「並按原樣發送給瀏覽器?

更新注意,上面的代碼裏面DisplayPage - 這顯然是不允許的宏/標記。我需要理解示例程序爲什麼甚至使用displayPage,以及更好的替代方案。

回答

0

的URLEnocding發生由於XML節點,而不是具體到了Scalatra。但是,在scalatra將內容返回給請求者之前,我沒有發現如何撤消編碼。

1

你能做到全球:

<% escapeMarkup = false %> 

或包裝材料的表達:

some text 
${unescape(outMsg)} 
+0

好的我正在嘗試。 – javadba

+0

我已更新OP:發送到displayPage的代碼不能包含宏擴展。我需要在這裏處理流程:示例程序確實使用了displayPage,但之後它被打破了。在得到一些自我教育之後,會再次更新OP。 – javadba