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组件负责显示它? (它也可能负责转义字符串。) –