您的位置:首页 > 编程语言 > Java开发

利用validation实现spring 表单的数据验证

2016-08-04 00:03 225 查看
     对于表单的验证一直是个难的问题,看别人的代码发现了,可以用alidate jar 与hibernate-alidate jar来实现验证,可以对表单数据进行封装,然后给spring mvc controller上加上@Valid对字段进行验证,如何配置:需要validate jar  ,hibernate alidate jar ,jboss-logging jar ,classmate jar需要在springmvc 的配置中加上alidate的配置加上如下内容:

      <mvc:annotation-driven  validator="validator" conversion-service="conversion-service" />

    

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">

        <property name="providerClass"  value="org.hibernate.validator.HibernateValidator"/>

        <!--不设置则默认为classpath下的 ValidationMessages.properties -->

        <property name="validationMessageSource" ref="validatemessageSource"/>

    </bean>

    <bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />

    <bean id="validatemessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  

        <property name="basename" value="classpath:validatemessages"/>  

        <property name="fileEncodings" value="utf-8"/>  

        <property name="cacheSeconds" value="120"/>  

    </bean>

给要验证的属性上加上@NotNull验证非空,@NotBlank验证是否为空字符串,@Pattern(regexp="^1[3|4|5|7|8]{1}[0-9]{9}$",message="手机号错误")正则表达式验证。

controller上如下:例如:

@RequestMapping("/userget.json")
@ResponseBody

public String getUser(@Valid User user,Errors error){
System.out.println("name="+user.getName()+",phone="+user.getPhone()+";");

    if(error.hasErrors()){

        for(int i=0;i<error.getErrorCount();i++){

        System.out.println("message="+error.getAllErrors().get(i).getDefaultMessage());

        }

        
   return error.getAllErrors().get(0).getDefaultMessage();

   

    } else {

    return null;

    }

}

就这样搞定了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: