SpringMVC中@ResponseStatus注解用法
2020-07-12 17:24
731 查看
@ResponseStatus 可以用于修饰一个类或者一个方法。修饰一个类的时候一般是一个异常类对类中所有方法起作用;当修饰一个方法时则是当该方法被触发且内部发生@ResponseStatus修饰异常时才起作用。
一般在一个异常类在类上面加上@ResponseStatus注解,就表明在系统运行期间,当抛出这个用@ResponseStatus修饰的异常时,就会使用这个异常类@ResponseStatus注解上的 error code 和 error reasoon 返回给客户端,从而使异常信息以更友好的方式展示给用户,也提高可读性。
如下例子:
MyException.java:
package com.myspringmvc.controller; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; /** * 自定义一个异常类,用@ResponseStatus修饰,当这个异常类型发生时用403和"Are you okay?"输出 */ @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "Are you okay?") public class MyException extends RuntimeException { }
MyController.java:
package com.myspringmvc.controller; import org.apache.http.HttpResponse; import org.springframework.http.HttpRequest; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.util.HashMap; import java.util.Map; /** * SpringMVC * 1.扫描整个项目 * 2.判断类是否有Controller或RequestMapping修饰 * 3.扫描方法,判断方法有没RequestMapping修饰 * 4.把类+方法注解的路径拼接值和全限定方法名绑定到map里 */ @Controller @RequestMapping(value="/web") public class MyController { @RequestMapping(value="/hi", method = RequestMethod.GET) @ResponseBody public String sayHi(@RequestParam("name") String name){ System.out.println("sayHi调用了..."); if ("yang".equals(name)){ throw new MyException(); } return "hello "+name; } }
当请求http://localhost:9090/web/hi?name=yang时手动抛出MyException异常,则就会触发这个@ResponseStatus注解上的 error code 和 error reasoon 返回给客户端
这是SpringMVC的一个注解应用,具体场景在工作中可以摸索引用,这里仅做记录。
相关文章推荐
- springmvc--ResponseStatus注解处理异常
- springmvc学习笔记(30)——ResponseStatus注解处理异常
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- SpringMVC4使用@ResponseBody注解实现JSON自动转换错误
- 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别
- 实现SpringMVC中使用@Responsebody注解返回任意POJO对象转换成JSON
- SpringMVC如何区分返回页面和返回数据?@ResponseBody注解
- SpringMVC使用@ResponseBody注解来实现对象序列化成JSON字符串
- springMVC中@RequestParam注解的用法
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- SSM框架——SpringMVC中使用@ResponseBody注解返回值,Ajax取得中文乱码解决方法
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- 【SpringMVC】解决@ResponseBody注解返回中文乱码
- springMvc注解@RequestParam用法解析
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- springMVC跨服务器文件出现returned a response status of 400 OR 403 OR 409
- springMVC注解用法:@modelattribute的用法
- 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
- SpringMvc部分注解及用法
- SpringMVC中解决@ResponseBody注解返回中文乱码问题