您的位置:首页 > 编程语言 > Java开发

SpringMVC ExceptionHandler 可以传递的参数及返回值

2016-04-12 10:15 344 查看
使用
ExceptionHandler
注解的异常处理方法可以使用很灵活的方法签名。可以使用以下类型的参数,参数可以以任意书序传递。

一个异常参数。声明一个一般性的异常或者更加具体的异常

Request 和/或 response 对象(Servlet API 或 Portlet API)。可以选择一个特定 request/response的类型,比如
ServletRequest
/
HttpServletRequest
PortletRequest
/
ActionRequest
/
RenderRequest
.

Session 对象 (Servlet API 或Portlet API)。可以是 HttpSession ,也可以是PortletSession。这种类型的参数强制要求存在一个会话。因此,这个参数不能为
null
。请注意,会话访问可能是非线程安全的,特别是在一个Servlet环境中。如果多个请求可以访问一个会话,请考虑将
synchronizeOnSession
标志修改为
"true"


WebRequest
NativeWebRequest


Locale


InputStream / Reader
访问请求内容

OutputStream / Writer
生成响应内容

Model

异常处理方法支持的返回值类型:

ModelAndView
对象 (Servlet MVC or Portlet MVC)

Model
对象, 通过
RequestToViewNameTranslator
隐式确定的一个视图名称.

Map
对象, 通过
RequestToViewNameTranslator
隐式确定的一个视图名称

View
对象

被解析成一个视图名称的
String


@ResponseBody
注解的方法 (仅限Servlet) 设置响应内容

HttpEntity<?>
ResponseEntity<?>
(仅限Servlet) 设置响应头和响应内容

void
。方法自己处理了响应(通过直接写响应内容,需要声明一个属于
ServletResponse
/
HttpServletResponse
/
RenderResponse
类型的参数)或者通过
RequestToViewNameTranslator
隐式确定的一个视图名称(没有在方法签名中声明任何响应参数,仅适用于Servlet环境)

在Servlet环境中,可以将@ResponseStatus 与ExceptionHandler结合使用,来定义HTTP响应的响应状态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc 异常处理