validation校验
springMVC使用validation框架校验框架,改框架由hibernate提供
1.导入该jar包
2.配置校验器
3.顺势编写资源文件
最好使用jdk自带的工具我们转成utf-8的编码,因为我测试了无论在配置文件怎么修改编码格式还是会乱码,用这种方式绝对解决问题
4.加载校验器
5.在相应的pojo类的属性上编上校验规则
6.此时就可以去controller中捕获检验信息了
7.jsp页面
8.部署测试
validation校验—分组校验
在pojo中定义校验规则,而pojo是被多个 controller所共用,当不同的controller方法对同一个pojo进行校验,但是每个controller方法需要不同的校验。
解决方法:
定义多个校验分组(其实是一个java接口),分组中定义有哪些规则
每个controller方法使用不同的校验分组
1.定义接口
2.到pojo类上使用分组
3.controller类上按需使用分组
4.部署测试
补充一说:我们每次提交,哪怕是校验失败,但是数据并没有清空,这就是数据回显,最简单就是使用model来处理
全局异常处理
系统遇到异常,在程序中手动抛出,dao抛给service、service给controller、controller抛给前端控制器,前端控制器调用全局异常处理器。
全局异常处理器处理思路:
1.解析出异常类型
2.如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示
3.如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)
1.自定义一个异常类,只是简单的提供异常信息
2.编写全局异常处理器(整个系统有且只有有一个)
4.配置全局异常处理器
5.如果异常出现在controller
6.测试效果
7.如果是在service中抛出异常呢?
运行结果
总结建议
1.如果与业务功能相关的异常,建议在service中抛出异常。
2.与业务功能没有关系的异常,建议在controller中抛出。