博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM-SpringMVC-25:SpringMVC异常顶级之自定义异常解析器
阅读量:6487 次
发布时间:2019-06-24

本文共 3743 字,大约阅读时间需要 12 分钟。

 

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

上篇博客相信大家也看到了,自定义异常,用了SimpleMappingExceptionResolver这个解析器,本次要讲的是自定义异常解析器:

自己定义的异常解析器,实现了HandlerExceptionResolver,一会再在xml中配置一道,我把需要改或者新建的三处放在前面,下面的与上篇博客的一样(不过我也放上来),看着来把,活学活用

 

案例

  1,自定义异常解析器MyHandlerExceptionResolver:

 

package cn.dawn.day17selfexceptionresolver.resolver;import cn.dawn.day17selfexceptionresolver.userexception.UserageException;import cn.dawn.day17selfexceptionresolver.userexception.UsernameException;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Created by Dawn on 2018/3/30. */public class MyHandlerExceptionResolver implements HandlerExceptionResolver {    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {        ModelAndView modelAndView=new ModelAndView();        /*返回的异常对象*/        modelAndView.addObject("ex",ex);        /*判断去那个页面*/        if(ex instanceof UsernameException){            modelAndView.setViewName("name");        }        if(ex instanceof UserageException){            modelAndView.setViewName("age");        }        return modelAndView;    }}

 

  2.自己的xml大配置文件:

 

 

  3.讲web.xml中央调度器的上下文配置位置改为你现在这个配置xml

 

  下面的上篇博客就有,不过我也再放一份,ok

  4.UserageException自定义异常

 

package cn.dawn.day17selfexceptionresolver.userexception;/** * Created by Dawn on 2018/3/30. */public class UserageException extends Exception {    public UserageException() {        super();    }    public UserageException(String message) {        super(message);    }}

 

  5.UsernameException自定义异常

 

package cn.dawn.day17selfexceptionresolver.userexception;/** * Created by Dawn on 2018/3/30. */public class UsernameException extends Exception {    public UsernameException() {        super();    }    public UsernameException(String message) {        super(message);    }}

 

  6.自定义的处理器和处理方法

 

package cn.dawn.day17selfexceptionresolver;import cn.dawn.day17selfexceptionresolver.userexception.UserageException;import cn.dawn.day17selfexceptionresolver.userexception.UsernameException;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * Created by Dawn on 2018/3/28. */@Controllerpublic class ZDYExceptionController {    @RequestMapping("/zidingyiException")    public String zidingyiException(String username,Integer userage) throws Exception {        if(!username.equals("admin")){            throw new UsernameException("登陆名不正确");        }        if(userage<18){            throw new UserageException("未成年,走开");        }        return "success";    }}

 

  7.jsp页面

    7.1login.jsp

 

<%@ page  pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>    Title

登录

用户名:
年龄:

 

    7.2success.jsp

 

<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %><%----%>

Success!

 

    7.3error.jsp

 

<%@ page  pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>    Title

ERROR

${ex.message}

服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天

 

    7.4age.jsp

 

<%@ page  pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>    Title

年龄错误ERROR

${ex.message}

服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天

 

    7.5name.jsp

 

<%@ page  pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"  %>    Title

名字错误ERROR

${ex.message}

服务器被猴子砍了,攻城狮在抢修中,还杀了个程序猿祭天

 

 

 

  8.启动tomcat,访问login.jsp

 

转载于:https://www.cnblogs.com/DawnCHENXI/p/8683849.html

你可能感兴趣的文章
修改OBS为仅直播音频
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
ClickStat业务
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
我的路上
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
VuePress手把手一小時快速踩坑
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
RDD之五:Key-Value型Transformation算子
查看>>
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Pyrex也许是一个好东西
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
脱离标准文档流(2)---定位
查看>>