因此,我开发了一个评论系统,用户可以输入评论。如果注释线程太长,那么就有一个“查看以前的注释”链接用户可以点击获取更多的评论。获取的注释通过AJAX检索,并以XML形式返回:
FEED.JSP中的AJAX请求:
...
$.get("../GetPostComments", $.param(params), function(responseXml) {
$("#example").prepend($(responseXml).find("cfeed").html());
});GetPostComments SERVLET:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
Post post = c.getCommentsWithOffset(type, postid, offset);
request.setAttribute("post", post);
request.getRequestDispatcher("/WEB-INF/xml/comments.jsp").forward(request, response);
}comments.jsp
...
<c:out escapeXml="true" value="${example.comment}"></c:out>
...一切都很好!如果线程太长,用户可以获取新的注释。但是如果其中一个获取的注释包含一个特殊的xml字符,那么它就会中断,不会显示任何内容。尽管我已经逃离了:
<c:out escapeXml="true" value="${example.comment}"></c:out>有人知道为什么会发生这种事吗?由于某种原因,通过ajax在另一个.jsp文件中获取XML内容似乎取消了我正在进行的转义吗?

编辑控制台日志:
(可能用处不大.)它只显示了它的断裂处。(<ul></ul>)每个注释都退出在一个li中。

发布于 2018-01-26 12:57:09
感谢上面评论部分的BigMike,如果没有他的提示,问题就解决不了。这与一些非常不相关的事情有关,巧合的是,这似乎是一个xml转义问题。(因为它正在为另一篇文章获取注释)
/facepalm

https://stackoverflow.com/questions/48460630
复制相似问题