【发布时间】:2013-03-06 15:36:03
【问题描述】:
我想使用 XSLT 和 <x:transform> 标记生成 JSP。但是我的文件系统上没有 XML 文件,我不能像这样导入它:<c:import url="./xml/MyXml.xml" var="xmldoc"/>。它在 Java 代码中动态生成并设置为 String 以请求属性。
我试着这样做:
<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 文档(不是字符串)。我该怎么做?还是有其他方法可以做到这一点?
【问题讨论】:
-
根据this 它应该可以工作。我相信,这个问题在
c:import指令中。仅出于测试目的尝试使用绝对 URL(例如http://localhost:8080/myapp/xsl/MyStylesheet.xsl),如果它有效,那么您可以尝试使用${pageContext.servletContext.servletContextName}或类似的东西。 -
谢谢。但我尝试像 '
'。它奏效了。我认为原因不是'c:import'。但我会尝试更多地玩whis path。 -
这就是我的意思:请尝试使用
<c:import url="./xsl/MyStylesheet.xsl" var="xsltdoc"/>而不是<c:import url="http://localhost:8080/myapp/xsl/MyStylesheet.xsl" var="xsltdoc"/>,看看会发生什么。 -
对不起。我不小心发了最后一个帖子。我编辑了它。