2011-10-03 2 views
2

jstl에 대해 아주 간단한 질문입니다. 컨트롤러/서블릿에 의해 리턴되는 맵을 고려하십시오. 나는 클라이언트에 대한 XML 출력을 생성하고 싶습니다. 내가 표준 jstl 태그를 사용해야합니까, 아니면 더 우아한 방법이 있습니까?jstl을 사용하여 xml을 생성하는 가장 좋은 방법

는 지금은이 일을해야이 텍스트

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<?xml version="1.0" encoding="utf-8"?> 
<response> 
    <c:forEach var="entry" items="${msg}"> 
    <${entry.key}> 
     <![CDATA[${entry.value}]]> 
    </${entry.key}> 
    </c:forEach> 
</response> 

과 JSP를 생성,하지만 난 내 XHTML 웹 페이지의 모든 생성 방법 즉, 그것을

답변

8

내 응답이 XML 인 경우 일반적으로 JSTL을 건너 뛰고 JAXB를 사용합니다 (즉, 서블릿/컨트롤러의 출력 스트림에 직접 쓰기). 여기 <%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>

+0

에서 예를 들어 당신의 모델이 그럼 형성하는 경우 나는 이것을 추천 할 것입니다! 또는 XStream. –

+0

[xstream] (http://xstream.codehaus.org/)은 때로는 복잡한 JAXB 솔루션을 대체 할 수있는 아주 좋은 대안입니다. –

+0

나는 jaxb가 충분히 쉽다고 생각한다. 추가 의존성을 추가하고 싶지는 않다. 그러나이 방법은 좋은 대안입니다. 적어도 jsp 파일을 만들 필요가 없습니다. – user12384512

2

을 할 수있는 더 좋은 방법이 생각하고, XHTML XML입니다. 특수 XML 문자를 이스케이프하려면 <c:out> 또는 ${fn:escapeXml()}을 사용하는 것이 좋습니다.

관련 문제