2016-11-06 63 views
1

,我想我的控制器返回以下XML:Spring MVC的 - 杰克逊XML格式

<?xml version="1.0"?> 
<ResponseDTO result=”OK” timestamp=”20110322T152403Z"> 
<myId>9999.99</myId> 
<currency>USD</currency> 
</ResponseDTO > 

基本上我的DTO是这样的:

public class ResponseDTO { 

    private String myId; 
    private String currency; 

} 

我的控制器看起来像这样:

@RequestMapping(produces = MediaType.APPLICATION_XML_VALUE) 
@ResponseStatus(value = HttpStatus.OK) 
@ResponseBody 
public ResponseDTO doSomething() { 

    ... 
    return new ResponseDTO(); 
} 

我正在使用下面的依赖关系,下面给出的gradle代码片段:

compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version:'2.8.2' 

如何用jackson xml解析器实现'result = OK'和'timestamp = 20110322T152403Z'属性?

回答

1

使用JacksonXmlProperty到属性设定为杰克逊根元素象下面这样:

@JacksonXmlRootElement 
public class ResponseDTO { 

    @JacksonXmlProperty(isAttribute=true) 
    private String response; 
    @JacksonXmlProperty(localName="myId") 
    private String myId; 
    @JacksonXmlProperty(localName="currency") 
    private String currency; 
} 

Result: 

<ResponseDTO response="test"> 
<myId>test</myId> 
<currency>test</currency> 
</ResponseDTO>