2013-04-09 36 views
0

我已經在數據庫中保存了一些基本的HTML。這個HTML是通過ValueStackAction類在JSP文件中重新顯示爲<s:property value="htmlcodeString"/>如何在Struts2中使用Unescape HTML

但是,HTML代碼不被解釋,但逃脫和作爲是顯示(例如。< b>粗體</B>被示出,而不是BOLD)。

我正在使用Struts2。我在互聯網上發現了許多使用<c:out value="${text}" escapeXml="false" />的建議。但我不知道它是什麼。我如何在Struts2中使用它?

+2

你看過''標籤文檔,看看是否沒有類似的屬性來關閉HTML/XML轉義? http://struts.apache.org/development/2.x/docs/property.html順便說一句,你是否完全意識到,當這涉及到未經用戶控制的輸入時,你就會打開一個空洞的XSS攻擊洞這條路? – BalusC 2013-04-09 15:57:46

回答

4

The <s:property> tag有一個escapeHtml屬性,默認爲true

(但願出於顯而易見的原因。)

<c:out>是JSTL的一部分,你在任何其他Web應用程序中使用它在S2一樣,需要提醒的是這是因爲S2請求包裝,你可以的使用JSP EL來訪問值棧。

0

我通過Google發現了問題,發現添加escapeHtml="false"屬性導致JSP停止顯示。什麼工作,而不僅僅是escape="false

+1

'escape'屬性在幾年前已棄用。 – 2014-07-08 08:18:21