服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|

服务器之家 - 编程语言 - JAVA教程 - springmvc的validator数据校验的实现示例代码

springmvc的validator数据校验的实现示例代码

2020-12-03 09:37一杯凉茶 JAVA教程

这篇文章主要介绍了springmvc的数据校验的实现示例代码, 具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、什么是数据校验

这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验。

数据校验分为客户端校验和服务端校验

客户端校验:js校验

服务端校验:springmvc使用validation校验,struts2使用validation校验。都有自己的一套校验规则。

二、springmvc的validation校验

springmvc本身没有校验功能,它使用hibernate的校验框架,hibernate的校验框架和orm没有关系

2.1、添加jar包

          springmvc的validator数据校验的实现示例代码

2.2、在springmvc.xml中配置validator校验器,基本上直接复制拿过去用即可。

配置以下这些,相当于有人帮我们写好了校验代码,我们拿过来直接用就行了,所以需要进行配置。

          springmvc的validator数据校验的实现示例代码

将validator注册到适配器中

方式一(推荐)

          springmvc的validator数据校验的实现示例代码  

方式二:如果配置文件中使用的是非注解方式编写的适配器,则这样配置

          springmvc的validator数据校验的实现示例代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- 校验器,配置validator -->
 <bean id="validator" class="org.springframework.validation.beanvalidation.localvalidatorfactorybean">
   <property name="providerclass" value="org.hibernate.validator.hibernatevalidator"></property>
   <property name="validationmessagesource" ref="validationmessagesource"></property>
 </bean>
 
 <!-- 配置validationmessagesource -->
 <bean id="validationmessagesource" class="org.springframework.context.support.reloadableresourcebundlemessagesource">
   <!-- 指定校验信息的资源文件的基本文件名称,不包括后缀,后缀默认是properties -->
   <property name="basenames">
     <list>
       <value>classpath:validationmessagesource</value>
     </list>
   </property>
   <!-- 指定文件的编码 -->
   <property name="fileencodings" value="utf8"></property>
   <!-- 对资源文件内容缓存的时间,单位秒 -->
   <property name="cacheseconds" value="120"></property>
 </bean>

2.3、validationmessagesource.properties

该配置文件的作用就是存储校验失败时的提示文字信息的,也就是相当于将其提取出来放到配置文件中,

          springmvc的validator数据校验的实现示例代码

2.4、在pojo中指定校验规则

列举两个校验规则(使用的是注解校验),notnull和size

          springmvc的validator数据校验的实现示例代码

1、items.name.size和items.createtime.notnull:就是读取validationmessagesource.properties中的配置信息。从这里就可以理解该配置文件的意义,防止硬编码。

2、使用注解对需要进行校验的属性进行绑定,而能够使这些注解生效的前提就是配置此前的几个步骤,2.1、2.2、2.3都必不可少

其他校验规则摘抄自网上

          springmvc的validator数据校验的实现示例代码

springmvc的validator数据校验的实现示例代码

2.5、controller中对其校验绑定进行使用

          springmvc的validator数据校验的实现示例代码

1、@validated作用就是将pojo内的注解数据校验规则(@notnull等)生效,如果没有该注解的声明,pojo内有注解数据校验规则也不会生效

2、bindingresult对象用来获取校验失败的信息(@notnull中的message),与@validated注解必须配对使用,一前一后

3、代码中的逻辑应该很容易看懂,就是将result中所有的错误信息取出来,然后到原先的页面将错误信息进行显示,注意,要使用model对象,则需要在形参中声明model model,然后菜能使用

2.6、jsp页面

          springmvc的validator数据校验的实现示例代码

2.7、总结

其实非常简单,直接使用注解对其进行校验就完事了,校验代码都替我们写好了,只需要配置一下即可。傻瓜式操作。不会的看上面步骤,一步步来。

三、分组校验

3.1、什么是分组校验?

校验规则是在pojo 制定的,而同一个pojo可以被多个controller使用,此时会有问题,即:不同的controller方法对同一个pojo进行校验,此时这些校验信息是共享在这不同的controller方法中,但是实际上每个controller方法可能需要不同的校验,在这种情况下,就需要使用分组校验来解决这种问题,

通俗的讲,一个pojo中有很多属性,controller中的方法1可能只需要校验pojo中的属性1,controller中的方法2只需要校验pojo中的属性2,但是pojo中的校验注解有很多,怎样才能使方法1只校验属性1,方法二只校验属性2呢?就需要用分组校验来解决了。

3.2、定义分组

          springmvc的validator数据校验的实现示例代码

springmvc的validator数据校验的实现示例代码

就是定义空的接口,接口类只作为这个分组标识来使用,看下面的用法,就知道其意义何在了

3.3、使用分组

        springmvc的validator数据校验的实现示例代码

3.4、controller方法

在这个方法中,那么就只会校验items这个pojo中有validationgroup1这个分组的校验注解,而不会在校验其他的

        springmvc的validator数据校验的实现示例代码

四、总结

数据校验就这样讲完了,非常简单吧,拿过来就是一顿用即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/whgk/p/7191152.html?utm_source=tuicool&utm_medium=referral

延伸 · 阅读

精彩推荐
  • JAVA教程java反射机制示例

    java反射机制示例

    这篇文章主要介绍了java反射机制示例,需要的朋友可以参考下 ...

    Java教程网1892019-11-21
  • JAVA教程Java classloader和namespace详细介绍

    Java classloader和namespace详细介绍

    这篇文章主要介绍了Java classloader和namespace详细介绍的相关资料,需要的朋友可以参考下...

    Java教程网1232020-08-21
  • JAVA教程浅谈Java转义符\\|

    浅谈Java转义符\\|

    java中\需要用\\来表示吧这个你应该知道,而split中传入的参数是什么呢 他并不是普通的字符串 你可以查一下api文档 它要求传入的是正则表达式 而正则表达...

    hebedich5312019-12-23
  • JAVA教程java实现短信通信的完整教程

    java实现短信通信的完整教程

    这篇文章主要为大家详细介绍了java实现短信通信的完整教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    卖泡面的小男孩3812020-09-27
  • JAVA教程springMVC实现前台带进度条文件上传的示例代码

    springMVC实现前台带进度条文件上传的示例代码

    本篇文章主要介绍了springMVC实现前台带进度条文件上传的示例代码,具有一定的参考价值,有兴趣的可以了解一下。...

    零度anngle3472020-07-26
  • JAVA教程Java 调整格式日志输出

    Java 调整格式日志输出

    本文主要介绍Java 的日志输出格式,在开发java的时候会经常看日志进行调试或者查看错误,这里给大家介绍日志输出调整格式,以便大家看日志的时候更加方便...

    lqh4002020-05-29
  • JAVA教程详解如何用spring Restdocs创建API文档

    详解如何用spring Restdocs创建API文档

    这篇文章将带你了解如何用spring官方推荐的restdoc去生成api文档。具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    方志朋3172020-09-29
  • JAVA教程JAVA中string数据类型转换详解

    JAVA中string数据类型转换详解

    在JAVA中string是final类,提供字符串不可以修改,string类型在项目中经常使用,下面给大家介绍了string七种数据类型转换,需要的朋友可以参考下 ...

    霞想无限好2682019-12-31