【发布时间】:2018-11-07 17:06:07
【问题描述】:
spring+jaxb+jpa上有app
所以,我已经休息了 - 控制器和 jaxv 元素:
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "root")
@Getter
public class UserWrapper {
@XmlElementWrapper(name = "Users")
@XmlElement(name = "User")
private List<User> Users;
@XmlElement(name="UserError")
private UserError error;
}
@Getter
@Setter
@XmlRootElement(name="User")
@NoArgsConstructor
public class User{
@XmlElement
private String name;
@XmlElement
private String surname;
}
有用户实体和包装器用于包含用户列表。
我的控制器的响应是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<Users>
<User>
<Name>AAA</Name>
<Surname>AAA</Surname>
</User>
<User>
<Name>BBB</Name>
<Surname>BBB</Surname>
</User>
</Users>
</root>
如何在没有标签的情况下做出响应?
休息控制器是:
@RequestMapping(value = "/users", method = RequestMethod.GET)
public @ResponseBody UsersWrapper findByParams(
@RequestParam(value = "id") String id) throws Exception {
RiskMetricError error = null;
List<User> users = userService.find(id);
return (new UsersWrapper(users, error));
}
附: 我需要像这样做出响应xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Users>
<User>
<Name>AAA</Name>
<Surname>AAA</Surname>
</User>
<User>
<Name>BBB</Name>
<Surname>BBB</Surname>
</User>
</Users>
【问题讨论】:
-
您能否澄清一下“如何在没有标签的情况下做出响应?”的意思;应该如何回应?
-
@AngeloImmediate 已更新。
-
@AngeloImmediata 是的,但是有错误消息:org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.Collections$SingletonList
-
所以,在 stackoverflow 我接受建议 - 使用包装器。
-
我错了,所以我删除了我的评论......我会考虑你的问题,我会告诉你......对不起这个错误