有没有办法配置spring mvc来假设内容类型?

时间:2012-01-20 17:28:12

标签: java json spring spring-mvc content-type

我有一个方法可以发布一些json数据,看起来像这样

@RequestMapping(value = "/m1", method = RequestMethod.POST)
public Object m1(@RequestBody Map<String, ?> body) {
    // do something
}

当我发帖时将content-type标题设置为application/json时,这很有用,但如果我没有,则会失败并显示错误(它无法将帖子正文反序列化到地图中,因为它没有'知道怎么样)

如果没有指定标题,我必须在spring中配置什么才能使application/json作为默认值?

1 个答案:

答案 0 :(得分:1)

将JSON转换为对象的类称为HttpMessageConverter。我假设您使用Spring附带的默认Jackson。你可以编写一个自定义MessageConverter,它总是在你的响应对象类型的支持方法中返回true,然后在readInternal和writeInternal方法中调用Jackson httpconverter。但是,如果您这样做,请小心,因为一旦在您的请求处理程序中注册,就会询问所有@ResponseBody@RequestBody请求。