【问题标题】:Convert Java variable containing newline to javascript variable [duplicate]将包含换行符的Java变量转换为javascript变量[重复]
【发布时间】:2014-10-30 03:29:22
【问题描述】:

我想将服务器端发送到 JSP 的 java 变量(包含换行符和其他特殊字符)转换为 javascript 变量。

在我的 JSP 中,

var test = '${educationDescription}';
alert(test);

从服务器端发送的educationDescription的值为

    This is
test
containing newline
and other special chars like " & ; etc

但我收到上述代码 sn-p 的 javascript 错误。

【问题讨论】:

  • 你已经做到了。你有什么问题?
  • 嗨 Suresh,我收到上述代码的 javascript 错误,因为在 javascript 中,它是一个跨越 1 行的字符串 var。
  • 由于这是一个包含新行的变量,您需要转义新行。
  • 您是否尝试过使用 Apache 的 common-lang 库中的 StringEscapeUtils.escapeJavaScript?
  • @Jai 我给了答案 :) 你能检查一下并告诉我吗?

标签: java javascript jsp jstl


【解决方案1】:

这个问题我很久以前就遇到过,并且对 javascript 非常恼火,因为没有正确的错误消息。

后来我设法通过用 Java 字符串替换下面的所有 catridges 来解决。

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

'${fn.replace(educationDescription,"\\r\\n|\\r|\\n", "")';

它解决了这个问题。

这里的问题在于,我们假设问题在于新行。但有时 String 会附带一个全新的 catride \r,但很多人并不知道。

【讨论】:

    【解决方案2】:

    你可以做这样的事情。使用两个斜杠(“\\n”)

    <%
    String s = "This is a \\n test";
    request.setAttribute("s", s);
    %>
    
    var s="${s}";
    alert(s);
    

    【讨论】:

      猜你喜欢
      • 2013-12-15
      • 2021-02-22
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多