SpringMVCExceptionHandler可以传递的参数及返回值
使⽤ExceptionHandler注解的异常处理⽅法可以使⽤很灵活的⽅法签名。可以使⽤以下类型的参数,参数可以以任意书序传递。
1. ⼀个异常参数。声明⼀个⼀般性的异常或者更加具体的异常
2. Request 和/或 response 对象(Servlet API 或 Portlet API)。可以选择⼀个特定 request/response的类型,⽐如ServletRequest /
HttpServletRequest 或 PortletRequest / ActionRequest / RenderRequest.
3. Session 对象 (Servlet API 或Portlet API)。可以是 HttpSession ,也可以是PortletSession。这种类型的参数强制要求存在⼀个
会话。因此,这个参数不能为null。请注意,会话访问可能是⾮线程安全的,特别是在⼀个Servlet环境中。如果多个请求可以访问⼀个会话,请考虑将synchronizeOnSession标志修改为 "true";
4. WebRequest 或 NativeWebRequest
5. Locale
6. InputStream / Reader 访问请求内容
7. OutputStream / Writer ⽣成响应内容
8. Model
异常处理⽅法⽀持的返回值类型:
1. ModelAndView 对象 (Servlet MVC or Portlet MVC)
springmvc的注解有哪些2. Model 对象, 通过RequestToViewNameTranslator 隐式确定的⼀个视图名称.
3. Map 对象, 通过RequestToViewNameTranslator 隐式确定的⼀个视图名称
4. View 对象
5. 被解析成⼀个视图名称的String 值
6. @ResponseBody 注解的⽅法 (仅限Servlet) 设置响应内容
7. HttpEntity<?> 或 ResponseEntity<?> (仅限Servlet) 设置响应头和响应内容
8. void。⽅法⾃⼰处理了响应(通过直接写响应内容,需要声明⼀个属于ServletResponse / HttpServletResponse / RenderResponse 类
型的参数)或者通过RequestToViewNameTranslator 隐式确定的⼀个视图名称(没有在⽅法签名中声明任何响应参数,仅适⽤于Servlet环境)
在Servlet环境中,可以将@ResponseStatus 与ExceptionHandler结合使⽤,来定义HTTP响应的响应状态
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论