我使用的是struts框架 之前运行还好好的,重装系统之后再运行这个工程 页面就抛出以下异常,小弟郁闷好几天了,希望大家帮忙解决一下。
org.apache.jasper.JasperException: /bo/city.check.toview.jsp(63,13) Attribute value String.valueOf(request.getAttribute("year")) is quoted with " which must be escaped when used within the value
是jsp的编译器出问题还是怎么回事呢?
[b]问题补充:[/b]
value="">
这就是JSp中的代码,把value后面的双引号换为单引号确实可以解决这个问题,不过 之前一直用的是双引号都没有问题的,如果要改的话 工程中有很多这样的jsp 会很麻烦的,还有别的解决方法吗?
[b]问题补充:[/b]
我用的是tomcat5.5
[b]问题补充:[/b]
没有升级jar包,最近只是重做了一下系统,tomcat还是5.5,刚才试了一下,如果用解压版的tomcat5.5就没有这个问题了,这是怎么回事呢?
[b]问题补充:[/b]
谢谢大家对我的问题的关注,那我就先用解压版的tomcat吧!
那就用解压版的嘛...我一直都是用解压版,而且安装版时不是会出现问题...
比如:
[quote]javax.servlet.ServletException: Unable to get connection, DataSource invalid: "java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序"[/quote]
而解压版就没有这个问题
/bo/city.check.toview.jsp(63,13) Attribute value String.valueOf(request.getAttribute("year"))
你把这个jsp代码部分粘出来看看,
这里说的比较清楚:
[url]http://alexfc.iteye.com/blog/335080[/url]
这个问题八成是因为你jsp标签里"里还有"
你用了struts标签,可能是这个原因
我前几天也遇到了这个问题,你用的是tomcat6.0吧!其实就是把你[color=green]value="request.getAttribute("year"))" [/color]这句的双引号换成单引号
[color=orange]value='request.getAttribute("year"))'[/color]
value="<%=request.getAttribute("year"))%>" 换成
value='<%=request.getAttribute("year"))%>'
是不是你的tomcat版本升级了,如果是,改回原来的版本就没问题了,
你最近动过系统的什么比如,升级jar包,和服务器等
我给的那个链接[url]http://alexfc.iteye.com/blog/335080[/url],不是有说明apache 升级到 6.0 后出现的 bug吗.我用解压版的tomcat 6从没遇到你这种情况..
可以通过设置System Properties来改变tomcat的默认行为:
org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING
If false the requirements for escpaing quotes in JSP attributes will be relaxed so that a missing required quote will not cause an error. If not specified, the specification compliant default of true will be used.
安装版的tomcat的默认行为和解压版的不同,
这里有所有的系统属性说明
http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html