0
我正在使用jaxb marshal將java對象轉換爲xml。我的轉換方法是這樣的:xml字符串沒有正確渲染
protected String marshallerEx(Tickets tickets) throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(Tickets.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter sw = new StringWriter();
// Marshal the tickets list in console
jaxbMarshaller.marshal(tickets, sw);
LOGGER.info("marshal -> " + sw.toString());
return sw.toString();
}
這裏的問題是,當我在日誌打印,報表是正確的格式來了。例如:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tickets>
<ticket>
<assignedQueueId>61</assignedQueueId>
<category>11</category>
<cause>0</cause>
<createDate>2015-08-19T13:34:18-04:00</createDate>
<customFields/>
</ticket>
</tickets>
,但是當我回到它從我的控制器在屏幕上顯示(瀏覽器),它這樣表示:
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<tickets>\n <ticket>\n <assignedQueueId>61</assignedQueueId>\n <category>11</category>\n <cause>0</cause>\n <createDate>2015-08-19T13:34:18-04:00</createDate>\n <customFields/>\n </ticket>\n</tickets>\n"
爲什麼它改變格式?我需要做什麼才能保持格式保持在屏幕上顯示,就像它在我的日誌中一樣?
它不是來自這個問題如何XML的字符串表示得到顯示在瀏覽器 –
@AlexErohin明確:我正在返回相同的字符串返回到瀏覽器。我想看到它在相同的格式,如它在日誌中顯示,但不知何故它得到改變 – user9517536248
這個字符串如何顯示在瀏覽器中?它是由servlet寫出來的,還是作爲html頁面的一部分顯示?什麼html組件負責顯示它? (它也可能負責轉義字符串。) –