我在请求属性中设置了以下内容:
confirmMsg = "REf No: \n 112";
req.setAttribute("confirmMsg", confirmMsg);
我需要将上面的内容显示为(在警告框中):
参考编号:
112
我在JavaScript中使用以下onload函数来显示加载页面的消息。
function onLoad() {
var msg = "${confirmMsg}";
if(msg != null && msg != "") {
alert(msg);
}
}
以上抛出脚本错误?如何传递换行符?
答案 0 :(得分:4)
\n
需要进行JavaScript转义才能放入JavaScript字符串文字中。
使用commons-lang StringEscapeUtils.escapeECMAScript()
来缓解消息,并将此转义消息传递给JSP。
答案 1 :(得分:0)
正如我所提到的,不要将JSP与JavaScript混淆。
您要做的是从JSP / Servlet(JSP是一个Servlet)输出一个字符串消息,以便在JavaScript代码块中使用。
要执行此操作,您的消息需要针对JavaScript进行编码,例如使用JB Nizet描述的StringEscapeUtils.escapeECMAScript方法。
然后,您需要在创建响应的jsp或servlet中输出您希望javascript操作的变量,为此您可以
<%= confirmMsg %>
而不是$ {},因为这是一种表达式语言,并不是每个jsp都可用。
简而言之,从“$ {confirmMsg}”更改为&lt;%= confirmMsg%&gt;或&lt;%=(String)request.getParameter(“confirmMsg”)%&gt; //或request.getAttribute等等