SpringMVC如何自定义响应的HTTP状态码
滕青山YYDS 人气:0自定义响应的HTTP状态码
SpringMVC自定义响应的HTTP状态码有两种方法,一种是在返回方法上面加上@ResponseStatus注解,另一个种是在方法内部使用response.setStatus()方法。
注解方式
@ResponseStatus一般是作用在异常类或者方法上,带有@ResponseStatus注解的异常类会被ResponseStatusExceptionResolver 解析,可以实现自定义的一些异常,同时在页面上进行显示。
作用在方法上时,将会修改response的状态码
示例:
@RequestMapping("/204test") @ResponseStatus(value=HttpStatus.NO_CONTENT) public void ping(HttpServletResponse response) throws Exception { System.out.println("20444"); }
response.setStatus()方式
示例:
public ModelAndView respond(HttpServletResponse response) throws Exception { response.setStatus(status); response.setContentType(contentType); response.setHeader("Content-Disposition", "Inline; filename=" + jobName + "Properties.csv"); response.getWriter().write(message); return null; } }
http状态码406(Not Acceptable)
先看看406状态码解释
—HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页
大概意思就是请求和程序是没有问题的,但是响应内容无法解析
这个时候想到返回的是一个对象,页面需要接受的话需要Jackson的支持,果断想到问题:缺少Jackson包,修改pom后update project
问题成功解决!!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容