我有以下代码(jsp)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<script type="text/javascript">
$(document).ready(function() {
<c:forEach items="${messages}" var="msg" varStatus="i">
alert("${msg.description}");
</c:forEach>
});
</script>
Ans messages
是一个Arraylist
,它从控制器传入此JSP。
model.addAttribute("messages", messages);
return "the_above_jsp";
这一点正常,直到description
值保持以下字符串值。
New task assigned from project Hip Tensile Strength Analysis : Data Management/Analysis Task due date is 20140408
当description
具有此值时,它将显示错误Uncaught SyntaxError: Unexpected token ILLEGAL
为什么?
答案 0 :(得分:0)
我在设置属性并传递jsp时,通过从字符串description
中删除换行符解决了这个问题。
for(int i=0;i<messages.size();++i){
messages.get(i).setDescription(messages.get(i).getDescription().replaceAll("\n", ""));
}
model.addAttribute("messages", messages);
return "the_above_jsp";
但我不知道它是如何运作的。可能是newLine
字符的非法字符。或者可能有更好的解释。请修改这个或添加一个新的答案虽然我疯狂猜测解决了这个问题。