我无法想办法在Spring 3中使用注释将多个参数和标头绑定到一个请求参数。
例如,假设我收到了这个请求:
Headers:
Content-type: text/plain;
POST Body:
Name: Max
现在我希望这一切都神秘地绑定到这个对象:
class NameInfo {
String name;
}
使用这样的代码:
String getName() {
if ("text/plain".equals(headers.get("content-type"))) {
return body.get("name");
} else if ("xml".equals(headers.get("content-type")) {
return parseXml(body).get("name");
} else ...
}
这样我最终可以使用:
@RequestMapping(method = RequestMethod.POST)
void processName(@RequestAttribute NameInfo name) {
...
}
有没有办法实现类似于我需要的东西?
提前致谢。
答案 0 :(得分:2)
@RequestBody
就是你想要的。请参阅有关它的Spring文档here。
@RequestBody
方法参数 注释表示一种方法 参数应绑定到该值 HTTP请求正文。您将请求正文转换为 方法参数使用
HttpMessageConverter
。HttpMessageConverter
负责 用于从HTTP请求转换 消息到对象。