tomcat5.5以上版本对于页面标签属性value中的引号需要转译

今天接了个同事的半成品网站需要继续完成,熟悉网站的时候出现了以下错误

org.apache.jasper.JasperException: /jsp/index_f_left.jsp(135,84) Attribute value new Integer[] {Integer.valueOf((String)db.get("id"))} 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:198)
	org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:301)
	org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:250)
	org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:212)
	org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:155)
	org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1252)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
	org.apache.jasper.compiler.Parser.parseBody(Parser.java:1675)
	org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1022)
	org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1290)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
	org.apache.jasper.compiler.Parser.parseBody(Parser.java:1675)
	org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1022)
	org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1290)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
	org.apache.jasper.compiler.Parser.parseBody(Parser.java:1675)
	org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1022)
	org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1290)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
	org.apache.jasper.compiler.Parser.parse(Parser.java:138)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
	org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1001)
	org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:560)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

 错误原因是同事使用Tomcat5.0,我使用的是Tomcat6.0,后来测试,Tomcat5.5及Tocmcat6.0对于页面标签的属性value中的引号需要使用"\"转译。

例如,Tomcat5.0中以下写法没有问题

variables="<%=new Integer[] {Integer.valueOf((String)db.get("id"))}%>"

 而在Tomcat5.5及Tomcat6.0中需要这样的写法

variables="<%=new Integer[] {Integer.valueOf((String)db.get(\"id\"))}%>"
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值