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

handle escape characters in model attributes

本文关键字:转义字符 属性 模型 处理      更新时间:2023-09-26

我有一个像这样的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有转义字符,如引号('),则下一行将不工作。

<a href="javaScript:editComment('${comment.recordId}','${comment.description}');">Edit</a>

错误将像Uncaught SyntaxError: missing ) after argument list

该行将具有类似javaScript:editComment('2','aaa's hhh');的字符串我认为aaa之后有一个qotation mark导致了这个问题。

我该如何处理这种情况?

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

这对我来说很有效,

但是对于每个位置

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