springmvc注解开发-validation校验-商品修改校验

来源:互联网 发布:java怎么保留三位小数 编辑:程序博客网 时间:2024/06/05 18:31

校验的理解

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

 

服务端校验

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

             )校验一致

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

         持久层Dao:一般不校验。

 

springmvc校验

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

 校验思路

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

具体需求

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

 

环境准备

            添加Hibernate的校验框架validation所需要的jar

 

配置校验器

       执行Handler是适配器执行,所以最终将校验器注入到处理器适配器中

在springmvc.xml配置文件中,加入如下校验器代码

对以上校验器代码进行分析:

      <bean id="validator" class ="org.springframework.validation.beanvalidation.localvolidatorfactoryBean">指定校验器接口

 

<property name="providerClass" value="org.hibernate.validator.HibernateVolidator"/>指定Hibernate校验器

 

<property name="validationMessageSource" ref="messageSource"/>指定校验使用的资源文件。在文件中配置校验错误信息。如果

不指定默认使用classpath下的ValidationMessage.properties

<!--校验错误信息配置文件-->

<bean id="messageSource"

       class="org.springframework.context.support.ReloadaableResourceBundleMessageSource">

       <!--资源文件名-->

        <property name="basenames">

         <list>

                <value>classpath:CustomValidationMessage(资源文件名)</value>

          </list>

          </proterty>

</bean>

 

配置好了validator,将valiator校验器加到处理器适配器中

在pojo中添加校验的规则

      需要再itemsCustom.java中添加校验规则

message是提示校验出错的提示信息,要避免使用硬编码将提示信息写死,应该在校验信息配置文件中使用键值对的形式

定义提示错误信息:

 

 

在商品提交的时候对形参进行校验

在你需要校验的pojo前面添加@Validated注解,在你需要校验的pojo后边添加@BindingResult bindingResult接收校验出错信息

注意:@Validated和@BindingResult bindingResult是配对出现。并且形参顺序固定的一前以后

在页面显示校验错误信息

需要再Controller方法中将页面错误信息传到界面

需要计入Modle

 

页面显示错误信息

 

 

 

 

 

1 0