我可以从动态生成的XML创建JSP吗?

时间:2013-03-06 15:36:03

标签: java xml jsp xslt jstl

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

1 个答案:

答案 0 :(得分:0)

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

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

默认情况下,jstl使用请求范围。所以,如果你设置像request.setAttribute(&#34; someXmlString&#34;,xmlStr)的值;然后你可以直接打电话

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

两者都应该有用。