zoukankan      html  css  js  c++  java
  • JasperException: is quoted with " which must be escaped when used within the value

    今天做了个JSP的Web程序,在自己机器上测试能够正常运行。可是,当我部署到另外一台机器上的时候,JSP中的表达式就出现了问题

    异常信息如下:

    org.apache.jasper.JasperException: /jsp/machine/machine_edit.jsp(33,20) Attribute value method.equals("add") is quoted with " which must be escaped when used within the value
     org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
     org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
     org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
     org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:256)
     org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:205)
     org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:148)
     org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1208)
     org.apache.jasper.compiler.Parser.parseElements(Parser.java:1422)
     org.apache.jasper.compiler.Parser.parse(Parser.java:130)
     org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
     org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
     org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
     org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
     org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
     org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
     org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    


    开发的机器和部署的机器上都用的是Tomcat作为Web应用服务器,虽然是解压版的,理论上来说都应该没有问题的

    在网上查了下,有帖子说这个问题和JDK的版本有关,我本机的是JDK1.6.0_07,而另一台机器上的JDK1.6.0_25,然后我把另一台机器的JDK卸载之后重新安装JDK1.6.0_07之后再进行测试,结果问题依旧存在。

    于是,继续再网上寻找答案

    一个技术交流群的群友说使用JSP表达式的时候,可能对单引号和双引号的使用有限制,于是我就把类似于如下的代码:

    value="<%=str.equals("Hello")%>"


    都改成了

    value="<%=str.equals(\"Hello\")%>"


    这样修改之后,可能在Eclipse或者MyEclipse提示JSP错误,这个不要紧,JSP会被Web应用服务器重新编译的。也有帖子说把最外层的双引号修改成单引号就ok了,我在部署的机器上测试也是不行的。

    修改完之后,再重新测试,问题果断解决了。至于问题的本质,我认为还是和JDK、Tomcat的配置有关系,而不是仅仅JDK的版本有关,要不然在开发的机器和部署的机器上也不会出现这么大的差异。 

  • 相关阅读:
    Node.js安装及环境配置之Windows篇
    盘点.NET JIT在Release下由循环体优化所产生的不确定性Bug
    开源!一款功能强大的高性能二进制序列化器Bssom.Net
    开源 , KoobooJson一款高性能且轻量的JSON框架
    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
    .Net Web开发技术栈
    web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。
    .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证
    .Net 如何模拟会话级别的信号量,对http接口调用频率进行限制(有demo)
    .Net高级进阶,在复杂的业务逻辑下,如何以最简练的代码,最直观的编写事务代码?
  • 原文地址:https://www.cnblogs.com/wenlong/p/6188476.html
Copyright © 2011-2022 走看看