﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-沙罗双树园下的三轮明日-文章分类-SSH框架</title><link>http://www.blogjava.net/mercurymarsx/category/48305.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 15 Apr 2011 03:19:09 GMT</lastBuildDate><pubDate>Fri, 15 Apr 2011 03:19:09 GMT</pubDate><ttl>60</ttl><item><title>org.apache.jasper.JasperException: page.jsp(1,1) Attribute value request.getParameter("item") is quoted with " which must be escaped when used within the value</title><link>http://www.blogjava.net/mercurymarsx/articles/347724.html</link><dc:creator>天涯浪侠</dc:creator><author>天涯浪侠</author><pubDate>Wed, 06 Apr 2011 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/mercurymarsx/articles/347724.html</guid><wfw:comment>http://www.blogjava.net/mercurymarsx/comments/347724.html</wfw:comment><comments>http://www.blogjava.net/mercurymarsx/articles/347724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mercurymarsx/comments/commentRss/347724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mercurymarsx/services/trackbacks/347724.html</trackback:ping><description><![CDATA[有网友认为 Tomcat 没有遵循 JSP 2.0 specification （JSP .1.6 Quoting and Escape Conventions, Quoting in Attributes, Page 72-73），让下面不合法的语法在 Tomcat 5.5.26 之前的版本是可以被接受的<br />
<br />
&lt;mytags:tag value="&lt;%= "hi!" %&gt;" /&gt;<br />
但是合法的写法应该是下列这几种：&nbsp;<br />
&lt;mytags:tag value='&lt;%= "hi!" %&gt;' /&gt;<br />
&lt;mytags:tag value="&lt;%= \"hi!\" %&gt;" /&gt;<br />
&lt;mytags:tag value='&lt;%= \"hi!\" %&gt;' /&gt;<br />
<br />
也就是作为标签属性值时不能使用两次双引号，可以改用单引号取代外面的双引号或是里面的双引号前面要加转义字符(\)，为了符合遵循标准的参考实作这个精神，所以 Tomcat 开发团队就修正了这个问题，自 Tomcat 5.5.27 和 6.0.17 起改成这样。<br />
<br />
解决方式：<br />
<br />
方法 1：使用单引号<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:include&nbsp;</span><span style="color: #ff0000">page</span><span style="color: #0000ff">="split_page.jsp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jspUrl"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=jspUrl%&gt;"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="category"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">='&lt;%=equest.getParameter("category")%</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">'&nbsp;/&gt;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="searchFlag"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="T"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:include</span><span style="color: #0000ff">&gt;</span></div>
<br />
方法 2：使用转义字符("\")<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:include&nbsp;</span><span style="color: #ff0000">page</span><span style="color: #0000ff">="split_page.jsp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jspUrl"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=jspUrl%&gt;"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="category"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="&lt;%=equest.getParameter(\"</span><span style="color: #ff0000">category\")%</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">"&nbsp;/&gt;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp:param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="searchFlag"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="T"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp:include</span><span style="color: #0000ff">&gt;</span></div>
<br />
方法 3：修改 Tomcat 设置（不修改程序代码）<br />
如果网页比较多的话，另外的解决办法是在 ${CATALINA_BASE}/conf 下面的 catalina.properties 中加入以下内容，重新启动 Tomcat 即可：<br />
<br />
<pre class="brush: java" name="code">org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false</pre>
<pre class="brush: java" name="code">参考资料： <br />
<a class="snap_shots" href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45015" rel="nofollow" target="_blank">https://issues.apache.org/bugzilla/show_bug.cgi?id=45015</a><br />
<a class="snap_shots" href="http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html" rel="nofollow" target="_blank">http://tomcat.apache.org/tomcat-5.5-doc/config/systemprops.html</a><br />
<a class="snap_shots" href="http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html" rel="nofollow" target="_blank">http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html</a></pre>
 <img src ="http://www.blogjava.net/mercurymarsx/aggbug/347724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mercurymarsx/" target="_blank">天涯浪侠</a> 2011-04-06 18:32 <a href="http://www.blogjava.net/mercurymarsx/articles/347724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>