如何从我的 Servlet 将换行符传递给 JavaScript

How do I pass a New line character to JavaScript from my Servlet?

本文关键字:JavaScript 换行符 我的 Servlet      更新时间:2023-09-26

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

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

我需要显示上述内容,例如(在警报框中):

编号:

112

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

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

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

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

使用 commons-lang StringEscapeUtils.escapeECMAScript() 来逃脱消息,并将此转义消息传递给您的 JSP。

正如我所提到的,不要将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 等