处理模型属性中的转义字符

时间:2015-08-18 08:16:45

标签: javascript java spring

我有像这样的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>
                                &nbsp<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 markaaa会导致此问题。

我该如何处理这种情况。

在我的项目中有很多这样的地方。那么最好的方法是什么。

1 个答案:

答案 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>