`

JSP学习笔记(一百二十五):javascript中引用java变量出现换行符等会报错的解决方法

 
阅读更多

源文地址:http://www.cnblogs.com/modou/articles/3572874.html

有这么一种实际情况,就是在javascript代码片段中引用java变量,比如:

<script type="text/javascript">
var str1 = "${javastr1}";
</script>

一般情况下,这么使用是没有问题的,可是如果变量javastr1带有换行符,这段javascript就报错了,需要格式化javastr1。

如果项目中使用了struts2,可以使用freemarker现成的格式化方法:

<s:bean name="freemarker.template.utility.StringUtil" id="stringUtil"/>

<script type="text/javascript">
var str1 = "<s:property value="#stringUtil.javaScriptStringEnc(javastr1)" escapeHtml="false" />";
</script>

如果项目中没有使用struts2,新建一个javaScriptStringEnc方法即可,下面是freemarker里面的javaScriptStringEnc方法:

复制代码
public static String javaScriptStringEnc(String s)
  {
    int ln = s.length();
    for (int i = 0; i < ln; i++) {
      char c = s.charAt(i);
      if ((c == '"') || (c == '\'') || (c == '\\') || (c == '>') || (c < ' ')) {
        StringBuffer b = new StringBuffer(ln + 4);
        b.append(s.substring(0, i));
        while (true) {
          if (c == '"')
            b.append("\\\"");
          else if (c == '\'')
            b.append("\\'");
          else if (c == '\\')
            b.append("\\\\");
          else if (c == '>')
            b.append("\\>");
          else if (c < ' ') {
            if (c == '\n') {
              b.append("\\n");
            } else if (c == '\r') {
              b.append("\\r");
            } else if (c == '\f') {
              b.append("\\f");
            } else if (c == '\b') {
              b.append("\\b");
            } else if (c == '\t') {
              b.append("\\t");
            } else {
              b.append("\\x");
              int x = c / '\020';
              b.append((char)(x < 10 ? x + 48 : x - 10 + 65));

              x = c & 0xF;
              b.append((char)(x < 10 ? x + 48 : x - 10 + 65));
            }
          }
          else {
            b.append(c);
          }
          i++;
          if (i >= ln) {
            return b.toString();
          }
          c = s.charAt(i);
        }
      }
    }
    return s;
  }
复制代码

 

分享到:
评论

相关推荐

    JSP中java代码与js之间的传值

    - **通过JSP表达式语言(EL)**:使用EL表达式,如 `${javaVariable}`,可以直接在JavaScript代码中引用JavaBean或作用域内的变量。 2. **JavaScript到Java的传值**: - **表单提交**:通过JavaScript修改表单字段的...

    Java学习笔记CCS AJAX DMS JSP servlet JavaScript等中文笔记整理.rar

    在这些学习笔记中,你可以深入理解Java的核心概念,包括语法、数据类型、控制结构、类与对象,以及异常处理等。Java_笔记整理部分可能详细介绍了这些基本概念,并提供了实际编程中的应用示例。 CSS(Cascading ...

    jsp中使用return 报错解决方案.pdf

    【标题】:“jsp中使用return 报错解决方案” 在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。然而,在编写JSP代码时,有时开发者可能会遇到在JSP页面中使用`return`语句时出现错误的...

    JAVA~JSP环境变量配置!!!

    ### JAVA与JSP环境变量配置详解 #### 一、JAVA环境变量配置 ##### 1. 配置JAVA_HOME 在进行JAVA开发前,首先需要确保JAVA环境已经正确配置。这里以JAVA 1.6.0为例,介绍如何配置JAVA_HOME环境变量。 - **创建...

    html javaScript jsp学习笔记

    接着学习JavaScript,理解变量、控制流、函数、对象等概念,并熟悉DOM操作。最后,深入学习JSP,包括JSP指令、脚本元素、EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)等,以及如何与...

    JAVA(JSP+servlet+javascript)课程设计:教务管理系统

    【JAVA课程设计】中的"教务管理系统"是一个综合性的项目,它涵盖了JAVA技术栈的多个重要组成部分,包括JSP(JavaServer Pages)、Servlet以及JavaScript。这个系统的主要目标是实现对教育机构日常教学活动的信息化...

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 Java相关课程系列笔记之十四Hibernate学习...

    jsp学习笔记(学习java 的入门)

    【JSP 学习笔记(Java 入门)】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,旨在实现Web页面内容与业务逻辑的分离。它允许开发者在HTML页面中嵌入Java代码,以生成动态内容。本文将深入探讨JSP...

    JAVA与Jsp环境变量配置(原创)

    ### JAVA与Jsp环境变量配置详解 #### 一、引言 本文主要介绍JAVA与Jsp环境变量配置的具体步骤及注意事项。通过详细说明JAVA与Jsp环境变量的配置过程,帮助读者更好地理解并掌握JAVA与Jsp开发环境的搭建。 #### 二...

    JSP学习笔记截屏1

    在《JSP学习笔记截屏1》中,我们可以预见到这是一份关于学习JSP过程中的记录,包含了韩顺平老师的视频教程内容和个人的学习心得。韩顺平老师是一位知名的Java和Web开发领域的讲师,他的课程通常深入浅出,易于理解,...

    林学良Jsp&Servlet学习笔记

    在实际学习过程中,你可能还会涉及到Web容器的概念、部署描述符(web.xml)、请求和响应对象的使用、会话管理、Cookie、过滤器和监听器等进阶话题。通过不断实践和理解,你将能够熟练掌握这两种技术,为构建复杂的...

    JAVA(JSP+servlet+javascript)课程设计:教务管理系统Java源码

    教务管理系统是一个基于JAVA技术,利用JSP、Servlet和JavaScript实现的Web应用程序。这个课程设计旨在让学生深入理解和实践这三个核心技术在实际项目中的应用。以下是关于这些技术及其在教务管理系统中应用的详细...

    jsp学习笔记——初学者的选择

    【JSP学习笔记——初学者的选择】 JSP(JavaServer Pages)是JavaEE平台中用于构建动态网页的应用技术。作为初学者,理解JSP的基本概念和技术特性至关重要。 1. **为何选择JSP?** JSP的出现主要是为了解决...

    JSP学习笔记总结.doc

    **JSP学习笔记总结** **第 1 章 JSP 和 Web 页面的交互** 1.1 JSP(JavaServer Pages)是Java技术在Web开发中的应用,它允许开发者将静态HTML与动态Java代码结合起来,生成动态网页。通过在HTML页面中嵌入Java代码...

    Java相关课程系列笔记

    Java相关课程系列笔记之八JavaScript学习笔记(建议用WPS打开) Java相关课程系列笔记之二Oracle学习笔记(建议用WPS打开) Java相关课程系列笔记之九Servlet学习笔记(建议用WPS打开) Java相关课程系列笔记之六...

    jsp实用教程笔记

    2. JSTL(JavaServer Pages Standard Tag Library)提供了一系列标准标签,如条件判断、迭代、XML处理等,进一步降低了JSP中的Java代码量。 通过深入学习和实践“jsp实用教程”,你将能够熟练运用JSP开发动态Web...

    JSP 报错集合 经常出现的错误

    在Web开发过程中,尤其是使用Java Server Pages (JSP)技术栈时,开发者经常会遇到各种各样的错误。这些错误不仅包括编译错误、运行时错误,还有可能是由于服务器配置不当导致的问题。本文将重点介绍与JSP相关的常见...

    java学习笔记模版

    Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细说明: 1. **表单数据...

    jsp学习笔记总结(收集)

    这份"jsp学习笔记总结"包含了作者在深入学习JSP过程中积累的宝贵知识,旨在为初学者提供一个全面的指导。 1. **JSP基础概念** JSP是由Sun Microsystems开发的,用于服务器端的脚本语言。它允许开发者使用HTML或者...

    java学习笔记(javase)

    以下是一些Java学习笔记中的关键知识点,它们涵盖了从基础到进阶的概念。 1. JSP页面中静态包含文件(如HTML文件) 在JSP中,可以通过`&lt;jsp:include&gt;`标签来实现静态包含其他HTML、JSP或XML文件,这样可以提高代码...

Global site tag (gtag.js) - Google Analytics