2010-06-06 39 views
0

我有一点JSP的,这是否:JSTL XML转换不使用嵌套XSL工作包括

<c:import url="/xsl/Transformer.xsl" var="xslt" /> 
<x:transform doc="${actionBean.dom}" xslt="${xslt}" xsltSystemId="/xsl/"> 

这正是把XML作为,只要Transformer.xsl不含<xsl:include>标签或只要预期它所包含的任何文件都不包含任何内容。

不过,如果我使用XSL,其中包括一份文件,其中又包含另外一个文件,我得到以下错误:

 
ERROR: 'Invalid URI 'NestedInclude.xsl 
Could not resolve entity reference: "NestedInclude.xsl"'.' 

注意,JSP是包含在下面的XSL文件的目录。如果我所有的XSL和JSP都在同一个目录下(并且删除了xsltSystemId属性),那么一切都会正常工作,但我并不想这么做。

任何人都可以看到我做错的任何事情,因为它现在有点杀手锏,JSTL文档旁边没用。

回答

0

如果您提供xsltSystemId属性以“/”开头的值,我相信JSTL将使用EntityResolver尝试查找:PageContext.getServletContext().getResourceAsStream(xsltSystemId)。因此,您可以尝试xsltSystemId="/xsl/Transformer.xsl",或者忽略该属性。