Spring @RestController获取请求内容类型以响应json或html

时间:2015-07-27 07:45:17

标签: spring-mvc spring-restcontroller

如何获取请求Content-Type值?我们需要这个来打印json响应或Html respone。我的代码是这样的:

 @RestController
public class GestorController {
    @RequestMapping(value="/gestores", method = RequestMethod.GET)  
    public Object gestoresHtml(@RequestParam(value="name", required=false, defaultValue="sh14") String name) throws Exception {
        String json = "prueba json";

        String contentType = ?????

        if(contentType.equals("application/json")){
            return json;
        }else{
            ModelAndView mav = new ModelAndView();
            mav.setViewName("gestores");
            mav.addObject("name", name);
            return mav;
        }
    }
}

谢谢大家。

1 个答案:

答案 0 :(得分:2)

Content-Type是一个请求标头,您可以使用以下代码:

    @RequestMapping("/display")
    public void display(@RequestHeader("Content-Type") String contentType)  {}

查看spring的@RequestHeader docs

您无需手动执行此操作。你需要的是Content negotiation。它返回适合您需求的响应类型。见post