2011-10-03 36 views
2

關於jstl的非常簡單的問題。考慮由Controller/Servlet返回的Map。我想爲客戶端生成xml輸出。我應該使用標準的jstl標籤還是有更優雅的方式來做到這一點?使用jstl生成xml的最佳方法

現在,我創建了JSP與本文

<%@ 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> 

它應該工作,但我相信有更好的方式來做到這一點

回答

8

當我的回答是XML時,我通常跳過JSTL並使用JAXB(即直接從servlet/controller寫入輸出流)。

+0

一個例子,如果你的模型很好地形成,那麼我會推薦這個!或XStream。 –

+0

[xstream](http://xstream.codehaus.org/)是有時非常複雜的JAXB解決方案的一個很好的選擇。 –

+0

我認爲jaxb非常簡單,我只是不想添加額外的依賴關係。但是這種方法是很好的選擇。至少我不需要創建jsp文件 – user12384512

2

這就是我產生了我所有的XHTML網頁,以及XHTML是XML。您可能想使用<c:out>${fn:escapeXml()}來轉義特殊的XML字符。