onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"
$ {viewWPMasterGrid.name}向我傳遞一個字符串(例如W.P.WINT OFF ALL'10),它通常具有單引號字符,所以從調用javascript方法中我根本沒有得到第二個參數。如何處理問題?如何在jsp頁面處理javascript中的單引號?
onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"
$ {viewWPMasterGrid.name}向我傳遞一個字符串(例如W.P.WINT OFF ALL'10),它通常具有單引號字符,所以從調用javascript方法中我根本沒有得到第二個參數。如何處理問題?如何在jsp頁面處理javascript中的單引號?
看起來好像你可以將第二個參數分解爲它自己的變量。如果我已經正確理解你的問題。
var viewWPMasterGridName = "${viewWPMasterGrid.name}";
onclick = "_deleteWPSchemeData(${viewWPMasterGrid.id},'" + viewWPMasterGridName + "')";
這與他所做的一樣。 – 2012-01-06 12:35:13
使用'${viewWPMasterGrid.name.replaceAll("'", "\'")}'
您不能在JSP EL中使用replaceAll。 – 2012-01-06 12:34:07
當動態字符串可以將JavaScript字符串字面內部的說,它應該是JS-逃脫。就像動態字符串放在HTML頁面中一樣,它是HTML轉義的。
使用commons-lang StringEscapeUtils.escapeECMAScript
(或escapeJavaScript
,具體取決於版本)轉義字符串。您可以創建一個非常簡單的EL函數來直接從JSP執行此操作。
請注意,您可能會遇到單引號問題,但也可能存在雙引號,標記,EOL和反斜槓,它們必須全部在JS字符串文字中轉義。
試試這個,
var name = "${viewWPMasterGrid.name}".replace(/'/g,"\\'");
的[逃避傳遞給js函數在一個onclick事件字符串可能行情](http://stackoverflow.com/questions/8593834/escape-possible-quotes可能重複-in-string-passed-a-js-function-in-a-onclick-event) – BalusC 2012-01-06 12:28:53