SpringMVC下半篇之异常处理器及日期转换器

3.异常处理器

如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。

3.1.异常处理思路

系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:

3.2.创建异常处理器

java 复制代码
@Component
public class CustomExceptionResolver implements HandlerExceptionResolver {

	@Override
	public ModelAndView resolveException(HttpServletRequest request,
					HttpServletResponse response, Object handler, Exception ex) {
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("message", ex.getMessage());
		modelAndView.setViewName("error");
		return modelAndView;
	}

}

3.3.测试

  • 编写controller
java 复制代码
@Controller
@RequestMapping("/account")
public class AccountController {

   @RequestMapping("/findAccount14")
    public String findAccount14(Model model) {
        model.addAttribute("msg", "欢迎你 springmvc");
        //模拟异常信息
        int i = 10/0;
        return "success";
    }
}
  • 在index.jsp里面定义超链接
html 复制代码
<a href="/account/findAccount14">异常处理器</a>

5.日期转换器

5.1.自定义日期转换器

java 复制代码
public class DataConvert implements Converter<String, Date> {
 
      /***
     * 配置时间转换类
     * @param date
     * @return
     */
    @Override
    public Date convert(String date) {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.parse(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

5.2.1.配置自定义日期转换器

xml 复制代码
<!--注册类型转换器:处理器映射器去调用convertionServiceBean-->
<mvc:annotation-driven conversion-service="convertionServiceBean"/>
 
 <!-- 配置转换器 -->
 <bean id="convertionServiceBean" 
       class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
     <property name="converters">
         <set>
             <bean class="com.by.converter.DataConverter"></bean>
         </set>
     </property>
 </bean>
相关推荐
脚本自动化开发1 小时前
折叠双屏MU156LA:写稿修图游戏体验
后端
脚本自动化开发1 小时前
AI短剧800集讲规矩,观众忘了是AI
后端
Csvn3 小时前
安装、升级与目录结构
后端·nginx
皮皮林5513 小时前
万能通用!权限系统就该这么设计
后端
GoAI5 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
橙子家5 小时前
RESTful 接口:它并非标准或协议,而是一种【架构风格】
后端
小兔子6 小时前
dict.get 的默认值每次都会求值,哪怕键本来就在
后端
斯维赤6 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
肌肉娃子6 小时前
红队攻防测试报告 — wechat-e.cfd
后端
陈随易6 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员