码迷,mamicode.com
首页 > 其他好文 > 详细

使用@ResponseStatus注解的注意事项

时间:2018-11-09 10:49:25      阅读:1957      评论:0      收藏:0      [点我收藏+]

标签:status   code   public   img   under   请求   ado   shadow   通过   

当@ResponseStatus用在方法上,如

@RequestMapping("/test")
@ResponseStatus(reason="ok",code=HttpStatus.OK)
public String test() {
    return "test";
}

如果只是为了指示返回状态码,最好不要添加reason属性。
如果添加了reason属性,且reason不为"",且code > 0(哪怕状态码是200),会对当前请求走错误处理。

原因

org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod 类中,设置返回状态。如图:
技术分享图片
io.undertow.servlet.handlers.ServletInitialHandler 类中,判断错误码,如图:
技术分享图片

返回状态码的其他方案

返回状态码也可通过modelAndView.setStatus()实现,如

@RequestMapping(value = { "/test" }, method = RequestMethod.GET)
public ModelAndView test() {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("test");
    modelAndView.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
    return modelAndView;
}

使用@ResponseStatus注解的注意事项

标签:status   code   public   img   under   请求   ado   shadow   通过   

原文地址:http://blog.51cto.com/7266799/2314818

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!