我想使用XSLT和<x:transform>标签生成一个JSP页面。但是我的文件系统上没有XML文件,也无法像这样导入它:<c:import url="./xml/MyXml.xml" var="xmldoc"/>
。它在Java代码中动态生成,并作为字符串设置为请求属性。
我尝试像这样做:
<div id="mydiv">
<c:set var="xmldoc">
<c:out value="${requestScope.someXmlString}"/>
</c:set>
<c:import url="./xsl/MyStylesheet.xsl" var="xsltdoc"/>
<x:transform xml="${xmldoc}" xslt="${xsltdoc}"/>
</div>
或者
<div id="mydiv">
<c:set var="xmldoc" value="${requestScope.someXmlString}">
<c:import url="./xsl/MyStylesheet.xsl" var="xsltdoc"/>
<x:transform xml="${xmldoc}" xslt="${xsltdoc}"/>
</div>
但它没有起作用。看起来 <x:transform>
只接受xml文档(不是字符串)。我该怎么办?还是有其他方法可以做到这一点?
c:import
指令。只是为了测试目的,尝试使用绝对URL(例如http://localhost:8080/myapp/xsl/MyStylesheet.xsl
),如果它可以工作,那么你可以尝试使用${pageContext.servletContext.servletContextName}
或类似的东西。 - n1ckolas<c:import url="http://localhost:8080/myapp/xsl/MyStylesheet.xsl" var="xsltdoc"/>
,而不是<c:import url="./xsl/MyStylesheet.xsl" var="xsltdoc"/>
,看看会发生什么。 - n1ckolas