所有,我正在开发一个我们在 Resin Web 应用服务器中部署的 Java Web 应用。我一直在为应用程序的一个新部分进行一些 XML 解析,并意识到我们的应用程序正在使用Resin 类进行解析。由于多种原因,我想摆脱它并使用更标准的东西,所以我在我的树脂配置文件中设置了这些系统属性(并将 xerces jar 添加到我的类路径中):
<system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
<system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
而且,现在我在几个页面上都遇到了 JSP 编译错误(我猜 Resin 的内置解析器更宽松)。错误内容如下:
org.xml.sax.SAXParseException: The value of attribute "title" associated with an element type "display:column" must not contain the '<' character.
而且,某些页面上的“display:column”标签确实包含“title”属性中的标记。这是一个例子:
<display:column scope='col' class=" appealColorBG selectAllWidth"
title="<span class='centerThis'><label for='selectAll'>Select All</label><br />
<input type='checkbox' name='selectAll'
id='selectAll'
onClick='selectAllCheckboxes();'/></span> " >
我知道那是一些丑陋的 JSP 代码,但它也是已经投入生产的代码,所以我犹豫要不要更改它。
有谁知道我可以设置 xerces 以便它允许 JSP 按原样编译的方法?