2013-03-06 1 views
6

XSLT와 <x:transform> 태그를 사용하여 JSP를 생성하고 싶습니다. 하지만 파일 시스템에 XML 파일이 없기 때문에 다음과 같이 가져올 수 없습니다 : <c:import url="./xml/MyXml.xml" var="xmldoc"/>. Java 코드에서 동적으로 생성되며 속성을 요청하기 위해 String으로 설정됩니다. 내가하려고 이런 식으로 작업을 수행합니다동적으로 생성 된 XML에서 JSP를 만들 수 있습니까?

<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

[this] (http://www.tutorialspoint.com/jsp/jstl_xml_transform_tag.htm)에 따르면이 사이트는 작동 중입니다. 나는이 문제가'c : import' 지시어에 있다고 믿는다. 테스트 용으로 절대 URL (fe'http : // localhost : 8080/myapp/xsl/MyStylesheet.xsl')을 사용하고 작동한다면'$ {pageContext.servletContext.servletContextName }'또는 이와 비슷한 것. – n1ckolas

+0

감사합니다./수입 URL = "./ XSL/MyXml.xml"VAR = "해당 xmldoc": 하지만 '처럼 테스트 시도 > ' 그리고 효과가있었습니다. 그 이유는 'c : 수입'이 아니라고 생각합니다. 그러나 나는 위스 패스를 더 많이 연주하려고 노력할 것이다. <: 수입 URL = "./ XSL/MyStylesheet.xsl"VAR = "xsltdoc"/ C>'사용하려고하세요' user2140493

+0

그게 내가 말하는거야 무엇 // localhost : 8080/myapp/xsl/MyStylesheet.xsl "var ="xsltdoc "/>'그리고 무슨 일이 일어나는 지보십시오. – n1ckolas

답변

0

<x:transform> 태그의 요청 값을 직접 참조 할 수있는 값을 설정하거나 설정하지 않아도됩니다.

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

기본적으로 jstl은 요청 범위를 사용합니다. 따라서 request.setAttribute ("someXmlString", xmlStr)와 같은 값을 설정하면; 그러면 직접 전화 할 수 있습니다.

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

두 가지 모두 작동합니다.

관련 문제