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

xiaoxiao2021-02-28  43

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>
转载请注明原文地址: https://www.6miu.com/read-2626285.html

最新回复(0)