2012-10-11 32 views
0

我有以下EL表達式:Eclipse的錯誤地給予EL語法錯誤

${fn:escapeXml(fn:replace(response.distHeadline, "'", "\\'")) 

基本上是雙逃逸「response.distHeadline」之內的所有的撇號,然後的Xml後逸出distHeadline。我這樣做是因爲我將此傳遞給JavaScript方法。但在Eclipse中,第一個報價時會出現EL語法錯誤,然後當自動格式化時(Control + Shift + F),如果中斷並將剩餘方程移到下一行。

${fn:escapeXml(fn:replace(response.distHeadline, " 
'", "\\'")) 

因此,當我發佈頁面的方程式不起作用。如果我手動將方程全部保留在一行上,它可以正常工作。

如何防止Eclipse認爲存在錯誤或阻止Eclipse將此方程分解爲兩行。

完整標籤下面:

<img class="copy_identifier" onclick="getIdentifier('${response.filename}', '${fn:escapeXml(fn:replace(response.distHeadline, "'", "\\'"))}')" src="public/images/hyperlink_13x13.png"></img> 

回答

0

的問題似乎是單引號關閉單引號$ {前FN:埃斯卡...

你將不得不在處理工作引用更好。我發現創建一個處理工作的函數通常比直接引用所有這些引用更容易。

+0

我無法將此關閉傳遞給一個函數來處理。當我嘗試傳遞帶撇號的變量時,JavaScript給我一個錯誤。 – Justin

+0

我想你可以在嘗試使用頁面上的值之前轉義xml並替換引號。 – Zagrev

+0

是的,我只是沒有訪問變量之前,他們來到了頁面。 – Justin

0
<c:set var="print" value="${fn:replace(response.distHeadline,'\\'','& # 9 2 ; & # 3 9 ;')}" /> 

讓我知道如果打印變量給你所需的輸出!讓我知道你如何去做這件事!

+0

頁面在我用戶'\\''時不呈現,只在用戶「\\」時呈現 – Justin