6

我想使用 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 文档(不是字符串)。我该怎么做?还是有其他方法可以做到这一点?

4

1 回答 1

0

您无需尝试设置可以直接在<x:transform>标签中引用请求值的值。

<x:transform xml="${requestScope.someXmlString}" xslt="${xsltdoc}"/>

默认情况下,jstl 使用请求范围。所以如果你设置像 request.setAttribute("someXmlString", xmlStr); 这样的值 那么你可以直接调用

<x:transform xml="${someXmlString}" xslt="${xsltdoc}"/>

两者都应该工作。

于 2014-05-27T13:56:26.820 回答