2015-06-03 84 views
0

在我的Jsp頁面我在jsp頁面如何逃避花括號

<bean:message key="${person.title}"/> 

當「person.title」包含有大括號的字符串,它拋出異常

ava.lang.IllegalArgumentException: can't parse argument number: 

我測試與價值

「@#$%^ &(^+ _( = -09 {} | 12345`〜???,/';!?。?。[ ]」

注 - 我試圖把周圍的單引號{也嘗試過把反斜槓\ {但它無法正常工作。

+0

檢查這個【答案】(http://stackoverflow.com/questions/8271033/how-to-escape-el-dollar-signs) –

+0

你怎麼知道那是因爲大括號的?你的測試樣本「!@#$?%^&(?^ + _。(= -09 {} |?12345'〜???,。/'; []」幾乎是所有需要轉義的特殊字符在JSP輸出之前編碼 –

+0

@hragheb - 因爲當我拿出{其工作原理是 – Sachin

回答

0

它通常有助於把斜線花括號之前。
但是既然你已經嘗試過了,你可以嘗試使用.attr()來訪問標題,看它是否仍然會拋出錯誤。

0

您是否嘗試過與他們的HTML字符實體替換資源包中括號?

左括號 「{」 是&#123;而右括號「}」是&#125;

老:

page.title=Some Title {seriously} 

新:

page.title=Some Title &#123;seriously&#125; 

參考 - http://www.asciitable.com/ - 最愛的那個就在這裏。

+0

感謝邁克爾,我會嘗試這個 – Sachin

0

如前所述,我嘗試了不同的東西一樣逃避{與任一反斜槓\或單引號'但沒有它的工作。

然後我試着用

<bean:message name="person" property="title"/> 

更換

<bean:message key="${person.title}"/> 

,然後再次嘗試,但沒有運氣逃脫。最終我通過使用Java Expression解決了這個問題,如下所示。一種黑客,但罰款由我。不需要逃避角色。

<%= person.getTitle() %>