每天学点Java之SpringMVC的自定义转换器和异常处理

SpringMVC自定义转换器

1.创建自定义转换器类并实现Converter接口
    // 该类用来自定义 String 到 Integer的转换过程
public class MyIntConverter implements Converter<String, Integer>{

    @Override
    public Integer convert(String param) {
        System.out.println(param);
        // 将字符串分割为单个字符
        // 提取值在0-9之间的字符组成新的整型
        char[] charArray = param.toCharArray();
        String newParam = "";
        for (char c : charArray) {
            if (c >= '0' && c<= '9') {
                newParam += c;
            }
        }
        System.out.println("转换后的参数:" + newParam);
        return Integer.valueOf(newParam);
    }
}
2.配置文件中配置自定义转换器
    <!-- 注册自定义参数转换器 -->
    <mvc:annotation-driven conversion-service="converters"/>
    <bean name="converters" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <bean class="com.lanou.converter.MyIntConverter"></bean>
        </property>
    </bean>

SpringMVC异常处理

1.创建自己的异常类
public class MyException extends RuntimeException{
    private String msg;
    public MyException(String string) {
        this.msg = string;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }   
}
2.创建异常处理类并实现Spring提供的HandlerExceptionResolver接口
    public class MyExceptionHandle implements HandlerExceptionResolver{

    // 当在处理某个请求发生异常时 将自动调用该方法进行处理
    // 第三个参数表示异常位置
    // 返回值:ModelAndView 用来决定错误时显示的页面 以及数据
    @Override
    public ModelAndView resolveException(HttpServletRequest request,
     HttpServletResponse response, Object location,
            Exception ex) {
        System.out.println("异常发生的位置:" + location);
        System.out.println("异常信息:"+ ex);
        // 发生异常后进入exception.jsp
        // 并将位置和错误信息传给页面展示
        // 对于系统异常 我们没有办法具体处理 因为不知道为什么发送
        // 对于自定义的已知异常 就可以进行具体的处理
        ModelAndView mv = new ModelAndView();
        if (ex instanceof MyException) {
            System.out.println(((MyException) ex).getMsg());
            mv.addObject("msg",((MyException) ex).getMsg());
        }
        mv.setViewName("exception.jsp");
        mv.addObject("location",location);
        return mv;
    }
}
3.配置文件中配置自己的异常处理类
  <!-- 配置异常处理器 -->
    <bean class="com.xxx.exception.MyExceptionHandle"></bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值