SpringMVC 之服务端校验(五)

校验理解:

项目中,通常使用较多是前端的校验,比如页面中 js 校验。对于安全要求较高点建议在服务端进行校验。

服务端校验:

         控制层 controller:校验页面请求的参数的合法性。在服务端控制层 controller 校验,不区分客户端类型(浏览器、手机客户端、远程调用)

         业务层 service(使用较多):主要校验关键业务参数,仅限于 service 接口中使用的参数。

         持久层 dao:一般是不校验的。


需求:

springmvc 使用 hibernate 的校验框架 validation (和 hibernate 没有任何关系)。

校验思路:

    页面提交请求的参数,请求到 controller 方法中,使用 validation 进行校验。如果校验出错,将错误信息展示到页面。

具体需求:

    产品修改,添加校验(校验商品名称长度,生产日期的非空校验),如果校验出错,在产品修改页面显示错误信息。


准备 jar 包:

hibernate 的校验框架 validation 所需要 jar 包:


配置校验器:



校验器注入到处理器适配器中



在 pojo 中添加校验规则


CustomValidationMessages.properties:



捕获校验错误信息:



editProducts.jsp:



效果:




分组校验

需求:

在 pojo 中定义校验规则,pojo 是被多个 controller所共用。当不同的 controller 方法对同一个 pojo 进行校验时,不能让每个 controller 方法完成不同的校验。

解决方法:
定义多个校验分组( 其实是一个 java 接口 ),分组中定义有哪些规则;

每个 controller 方法使用不同的校验分组。


分组接口:


在校验规则中添加分组:


在 controller 方法使用指定分组的校验:



猜你喜欢

转载自blog.csdn.net/qq_30715329/article/details/80791542