1

我在请求属性中设置以下内容:

confirmMsg = "REf No: \n 112"; 
req.setAttribute("confirmMsg", confirmMsg); 

我需要将上述内容显示为(在警报框中):

参考编号:

112

我在我的 JavaScript 中使用以下 onload 函数来显示加载页面时的消息。

function onLoad() {
 var msg = "${confirmMsg}";
  if(msg != null && msg != "") {
    alert(msg);
   }

}

以上抛出脚本错误?如何传递换行符?

4

2 回答 2

4

\n需要进行 JavaScript 转义才能放入 JavaScript 字符串文字中。

使用 commons-langStringEscapeUtils.escapeECMAScript()转义消息,并将转义的消息传递给您的 JSP。

于 2012-04-18T13:31:10.250 回答
0

正如我所提到的,不要将 JSP 与 JavaScript 混淆。

您要做的是从您的 JSP/Servlet(JSP 是一个 Servlet)中输出一个字符串消息,以在 JavaScript 代码块中使用。

为此,您的消息需要针对 JavaScript 进行编码,例如使用 JB Nizet 描述的 StringEscapeUtils.escapeECMAScript 方法。

然后,您需要在创建响应的 jsp 或 servlet 中将变量输出到您希望它作用于 javascript 的位置,为此您可以这样做

<%= confirmMsg %>

而不是 ${} 因为它是一种表达式语言,并非总是在每个 jsp 中都可用。

简而言之,从 "${confirmMsg}" 改为 <%= confirmMsg %> 或 <%= (String)request.getParameter("confirmMsg") %> // 或 request.getAttribute 等等

于 2012-04-18T13:36:15.460 回答