2010-06-06 38 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",或者忽略該屬性。