我有像这样的HTML代码
<c:forEach items="${commentList}" var="comment">
<tr>
<td>${comment.description}<br>
<div align="right">
<c:if test="${comment.userId == sessionUser.userId}">
<a href="javaScript:editComment('${comment.recordId}','${comment.description}');">Edit</a>
 <a href="javaScript:deleteComment('${comment.recordId}');">Delete</a>
</c:if>
</div>
</td>
</tr>
</c:forEach>
commentList
是模型属性。
model.addAttribute("commentList", commentList); // array list in java
如果comment.description
有转义符号(如引号(&#39;)),则以下行无效。
<a href="javaScript:editComment('${comment.recordId}','${comment.description}');">Edit</a>
错误将类似于Uncaught SyntaxError: missing ) after argument list
该行将包含javaScript:editComment('2','aaa's hhh');
之类的字符串
我认为qotation mark
后aaa
会导致此问题。
我该如何处理这种情况。
在我的项目中有很多这样的地方。那么最好的方法是什么。
答案 0 :(得分:0)
这对我现在很有用,
但是必须为每个位置执行此操作
<c:set var="string1" value="${comment.description}"/>
<c:set var="search" value="'" />
<c:set var="replace" value="\\'" />
<c:set var="string2" value='${fn:replace(string1, search, replace)}' />
<a href="javaScript:editComment('${comment.recordId}','${string2}');">Edit</a>