Spring MVC 学习笔记9 —— 实现简单的用户管理(4.2)用户登录--显示局部异常信息

第二部分:显示局部异常信息,而不是500错误页

1. 写一个方法,把UserException传进来。

2. 映射方式:@ExceptionHandler (), 括号里value是UserException.class

3. 传参进入UserException方法:(UserException ue, HttpServletRequest req)

-----//1.把 UserException传进来;

-----//2.不能用model来传值,因为不是RequestMapping,用HttpSeverletRequest req

4. 把异常对象存入HttpSeverletRequest req的e参数:      req.setAttribute("e",ue);

5. 返回视图error:        return error;



----实现代码-----

UserController.java中加入:

	/*
* 显示局部的异常信息:仅仅只能处理这个控制器中的异常
* 写一个方法,HandlerException, 把 UserException传进来
*/
@ExceptionHandler(value={UserException.class}) //用ExceptionHandler来映射,要处理的value是一个数组
//要处理一个对象就这样写,可处理多个对象。
public String handlerException(UserException ue, HttpServletRequest req){
//1.把 UserException传进来;
//2.不能用model来传值,因为不是RequestMapping,用HttpSeverletRequest req
//把异常对象ue存进去:
req.setAttribute("e", ue); //req 的 “e”参数,被set为 uexception
return "error";
}

/WEB-INF/error.jsp中代码:${e.message}
调取message信息:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Error page</title>
</head>
<body>
<h1>
${e.message}
</h1>
</body>
</html>
04-13 20:38