繁体   English   中英

将XML解析器更改为Xerces时发生JSP编译错误

[英]JSP compilation error upon changing XML parser to Xerces

所有人,我正在开发一个在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?

那肯定是丑陋的JSP代码。

如果要在其上使用XML解析器,则会遇到问题。 正如Xerces告诉您的那样,有效XML中的属性值不能包含'<'字符。

您是否可以告诉Xerces接受这一点是令人怀疑的,但是修复XML比将XML解析器始终接受错误的XML更好。

您可能想退回到使用Resin类,直到可以馈送适当的Xerces XML或将Resin配置为不将XML解析器用作其JSP编译的一部分-参见注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM