【发布时间】:2011-02-09 19:28:35
【问题描述】:
所有, 我正在开发一个我们在 Resin Web 应用服务器中部署的 Java Web 应用。我一直在为应用程序的一个新部分进行一些 XML 解析,并意识到我们的应用程序正在使用 Resin classes 进行解析。由于多种原因,我想摆脱它并使用更标准的东西,所以我在我的树脂配置文件中设置了这些系统属性(并将 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 按原样编译的方法吗?
【问题讨论】:
-
如果 Resin 的默认设置有效,而更改的设置无效,那么为什么要更改它们?
-
resin 默认值适用于 JSP 编译,但我正在尝试解决另一个解析问题,我想为此使用 Xerces 而不是构建不是标准的树脂类。 JSP 编译问题让我措手不及。如果我找不到允许 JSP 也编译的解决方案,我将不得不改回来,就像你说的那样。
标签: xml jsp parsing xerces resin