2014-01-17 76 views
0

當試圖運行下面的代碼位:逃離XML字符

<c:out value="${<%=StringEscapeUtils.escapeXml(variable.content)%>}" 

我得到以下異常:

The function escapeXml must be used with a prefix when a default namespace is not specified. 

你有沒有在如何解決它的任何想法或解決方法嗎?

+0

你可以發佈完整的堆棧跟蹤嗎? –

+0

另外,你想通過在EL表達式'$ {}'中放置scriptlet來實現什麼? –

+0

@SotiriosDelimanolis只是想將variable.content的內容轉義出來。否則< >和「將被視爲特殊字符 – Rollerball

回答

1

您收到的異常很奇怪,您必須發佈完整的堆棧跟蹤,但是您不允許在表達式語言表達式中使用scriptlet。換句話說,這是

${<%=StringEscapeUtils.escapeXml(variable.content)%>} 

在語法上是不正確的。擺脫${}

+0

如果我這樣做,我不能使用聲明爲JSTL標記變量的變量。內容 – Rollerball

+0

是的,我添加它的腳本只是因爲沒有(同樣的例外)沒有工作,我我認爲可能是這個問題,但是我會刪除它 – Rollerball

+0

@Roller你不能用這種方式將EL與scriptlets混合使用,或者你可以使用scriptlets來獲取請求屬性'variable',得到它的'content'字段中,將其轉義並直接在''中使用該值。 –