2010-12-16 61 views
1

我有一個使用c:out打印一些字符串的JSP。但是我需要用斜槓將所有'(滴答聲)都轉義出來。jsp中的Escape'(ticks)

實例:JSP

<span onclick= 
    "document.getElementById('input').value+='<c:outvalue="${tag.title}" />'"> 
<c:out value="${tag.title}" /> 
</span> 

打印爲tag.title =測試的

<span onclick="document.getElementById('input').value+='test's'"> 
'test's 
</span> 

但我需要:

<span onclick="document.getElementById('input').value+='test\'s'"> 
'test's 
</span> 

有任何容易的方式做這在jsp中?

回答

1

您可以使用Commons Lang,進口StringEscapeUtils和使用它的方法(我認爲這將是escapeJavascript你的情況)

+1

您也可以將此方法映射爲JSP函數,以便您可以在EL中調用它,例如'$ {z:escapeJavascript(theJs)}'。 – 2010-12-16 17:11:43

1

在您的getTitle()方法中,您可以返回yourString.replaceAll(「'」,「」);

編輯:

嘗試

${fn:replace(yourString, "'", "")} 
-1

這可能是一個跡象,表明有些重構會被告知。

明確停止通過jstl標籤輸出html,而改爲使用ifwhen;或者做一個更大的重構。

我可能會使用jQuery和分配基於類的點擊功能(這可以從服務器端paramters採取)

+1

如果'或'何時'會如何幫助? - 我真的不明白你的答案嗎? – Ralph 2010-12-16 15:56:50

0

嘗試

${fn:replace(text, "'", "")} 

或添加一些JSP和使用與string.replace()