【发布时间】:2015-12-15 17:14:21
【问题描述】:
我正在开发 spring-boot rest 应用程序,我有一个需要发回 xml 响应的场景。我为此创建了一个 JAXB 类,如下所示:
@XmlRootElement(name = "Response")
public class ResponseDTO{
private String success;
private List<String> xmls;
}
我的控制器类如下:
public class MyController{
@RequestMapping(value = "/processrequest/v1", method = RequestMethod.POST, produces = "application/xml")
public ResponseEntity processHotelSegments(@RequestBody String xmlString) {
ResponseDTO response = new ResponseDTO();
response.setSuccess("true");
String xml1 = "<triggerProcess id = '1'><code>true</code> </triggerProcess>";
String xml2 = "<triggerProcess id = '2'><code>false</code></triggerProcess>";
List<String> list = new ArrayList<>();
list.add(xml1);
list.add(xml2);
response.setXmls(list);
return new ResponseEntity<>(response, HttpStatus.CREATED);
}
}
我期待 xml 响应如下:
<Response>
<success>true</success>
<xmls>
<triggerProcess id = '1'>
<code>true</code>
</triggerProcess>
<triggerProcess id = '2'>
<code>false</code>
</triggerProcess>
</xmls>
</Response>
即字符串值(xml1 和 xml2 也应转换为 xml)。但我得到如下:
<Response>
<success>true</success>
<xmls>
<triggerProcess id = '1'><code>true</code></triggerProcess><triggerProcess id = '2'><code>false</code></triggerProcess>
</xmls>
</Response>
其中的 xml(xml1 和 xml2)不会转换为 xml,而是显示为元素的字符串值。任何人都可以帮助我获得例外的输出。 提前致谢。
【问题讨论】:
-
我相信您可能需要一个带有代码和 id 成员的 TriggerProcess 类。然后,您可以将列表
添加到您的 RepsonseDTO 类中。 -
感谢您的意见。但我在这里面临的问题是字符串 xml1 和 xml2 是动态的。 xml 字符串的元素会有所不同。在这种情况下,TriggerProcess 类的元素也应该有所不同
-
当你说变化时,它们究竟是如何变化的?您每次都会得到带有不同元素的 triggerProcess ,否则会出现其他东西而不是 triggerProcess
-
比如说:有时 xml1 = "
" 有时 xml1 会变成true 。意思是说xml的元素会不断变化true01
标签: java xml spring jaxb spring-rest