在Spring 3中将多个请求参数绑定到一个对象

时间:2010-06-03 08:08:16

标签: java spring spring-mvc

我无法想办法在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) {
...
}

有没有办法实现类似于我需要的东西?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我想,

@RequestBody就是你想要的。请参阅有关它的Spring文档here

  

@RequestBody方法参数   注释表示一种方法   参数应绑定到该值   HTTP请求正文。

     

您将请求正文转换为   方法参数使用   HttpMessageConverter。   HttpMessageConverter负责   用于从HTTP请求转换   消息到对象。