1.添加Hiberbate validator相关的jar包

2.字需要验证的formbean 上添加验证的注解,内置注解有:

    1. dBean Validation 中内置的 constraint
    2. @Null   被注释的元素必须为 null
    3. @NotNull    被注释的元素必须不为 null
    4. @AssertTrue     被注释的元素必须为 true
    5. @AssertFalse    被注释的元素必须为 false
    6. @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    7. @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    8. @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    9. @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    10. @Size(max=, min=)   被注释的元素的大小必须在指定的范围内
    11. @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内
    12. @Past   被注释的元素必须是一个过去的日期
    13. @Future     被注释的元素必须是一个将来的日期
    14. @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式
    15. Hibernate Validator 附加的 constraint
    16. @NotBlank(message =)   验证字符串非null,且长度必须大于0
    17. @Email  被注释的元素必须是电子邮箱地址
    18. @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内
    19. @NotEmpty   被注释的字符串的必须非空
    20. @Range(min=,max=,message=)  被注释的元素必须在合适的范围内

可以自己扩展。

用法例子:我们接受表单的验证bean为ProductUnityFormatModel

public class ProductUnityFormatModel {
private String productId;//产品ID private String categoryId; //产品分类ID private List<String> categoryName;//产品名字 private String shopCategoryId;//店铺分类ID @Size(min = 1,max = 50,message = "<标题长度1-50字以内>")
private String productName;//产品名称 private String productCode;//产品编号 @NotNull(message = "<至少上传一张照片>")
private String[] productImgs; @NotEmpty(message = "<发货地不为空>")
private String addrProvinceName;//所在省份 @NotEmpty(message = "<发货地省市不为空>")
private String addrProvinceCode;//所在省份code private String addrCityName;//所在市 @NotEmpty(message = "<发货地市区不为空>")
private String addrCityCode;//所在市code @Pattern(regexp = "[0-9]+",message = "<库存数量为纯数字>")
private String inventoryNum;//库存数量 @Pattern(regexp = "[0-9]+[.]?[0-9]*?",message = "<商品原价为纯数字或小数>")
private String marketPrice;//市场价 @Pattern(regexp = "[0-9]+[.]?[0-9]*?",message = "<微店价为纯数字或小数>")
private String salePrice;//销售价 @NotEmpty(message = "<商品的详情不为空>")
private String productDescription;//商品描述 @Pattern(regexp = "[0-9]+[.]?[0-9]*?",message = "<运费为纯数字或小数>")
private String freight;//运费   //省略get和set方法
}

在controller中的请求方法的接受对象添加@Valid注解:(BindingResult必须紧跟着@ModelAttribute注解后面,一个不小心就就够你调试到头破还不知道为什么)

@RequestMapping(value = "/product/savingProductInformation",method = RequestMethod.POST)
public String savingProductInformation(Model model,@Valid @ModelAttribute("unityFormatModel") ProductUnityFormatModel unityFormatModel, BindingResult result){
if(result.hasErrors()){
  //如果验证不通过,result.hasErrors()为true
  //todo somthing --可以带些填了的数据回去,方便回显,提供友好点的体验
  return "";//返回到字段验证失败的请求页面
}}

在jsp页面(用其他的渲染模板,自己查下怎么用)

可以用Spring的标签<form:errors path="填验证的formbean字段"/>如果该字段不通过验证,这个标签会显示你在验证注解中填写的message内容

SpringMVC利用Hibernate validator做字段验证的更多相关文章

  1. springMvc 支持hibernate validator

    SpringMVC 支持Hibernate Validator 发表于9个月前(2014-08-04 11:34)   阅读(1780) | 评论(0) 11人收藏此文章, 我要收藏 赞0 5月23日 ...

  2. SpringMVC之使用Validator接口进行验证

    对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证.SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提 ...

  3. SpringBoot整合Hibernate Validator实现参数验证功能

    在前后端分离的开发模式中,后端对前端传入的参数的校验成了必不可少的一个环节.但是在多参数的情况下,在controller层加上参数验证,会显得特别臃肿,并且会有许多的重复代码.这里可以引用Hibern ...

  4. WCF消息拦截,利用消息拦截做身份验证服务

    本文参考  http://blog.csdn.net/tcjiaan/article/details/8274493  博客而写 添加对信息处理的类 /// <summary> /// 消 ...

  5. Hibernate Validator异常HV000221解决办法

    自建博客地址:https://www.bytelife.net,欢迎访问! 本文为博客同步发表文章,为了更好的阅读体验,建议您移步至我的博客 本文作者: Jeffrey 本文链接: https://w ...

  6. spring boot:使用validator做接口的参数、表单、类中多字段的参数验证(spring boot 2.3.1)

    一,为什么要做参数验证? 永远不要相信我们在后端接收到的数据, 1,防止别人通过接口乱刷服务:有些不怀好意的人或机构会乱刷我们的服务,例如:短信接口, 相信大家可能很多人在工作中遇到过这种情况 2,防 ...

  7. hibernate Validator 6.X 的学习,bean的约束(字段,get方法上的验证)

    一:背景说明 验证数据是一个常见的任务,它贯穿于所有应用层,从呈现到持久层.通常在每个层中都执行相同的验证逻辑,耗时且容易出错.为了避免这些验证的重复,开发商往往把验证逻辑直接进入的领域模型,在领域类 ...

  8. Hibernate validator验证

    spring-mvc配置 <mvc:annotation-driven validator="validator" /> <bean id="valid ...

  9. 使用Hibernate Validator来帮你做数据校验

    数据校验是贯穿所有应用程序层(从表示层到持久层)的常见任务.通常在每个层中实现相同的验证逻辑,这是耗时且容易出错的.这里我们可以使用Hibernate Validator来帮助我处理这项任务.对此,H ...

随机推荐

  1. 图片上传插件用法,net语法【二】

    之前一直写过KindeEditor中的小控件作为单独上次,但业务要求需要另一种方式 现在改用ajaxfileupload.js试试,这个一百度 一.首页引用 <script src=" ...

  2. div套div 里面div有浮动 外面div自适应高度

    <div style="background-color:red;"> <div style="float:left;background-color: ...

  3. java装饰模式

    在java的IO中就是运用装饰模式设计的.一层装饰一层 如:DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(n ...

  4. delphi 帮助文档(中英对译)下载地址

    文档下载地址:http://download.csdn.net/detail/yangzhimars/5014350

  5. iis无法加载样式

  6. List集合分页显示

    package com.mshc.util; import java.util.Arrays; import java.util.Collections; import java.util.List; ...

  7. iPhone doesn’t support any of GongShangJ.app’s architectures. You can add iPhone’s armv7s architectu

    iPhone doesn't support any of GongShangJ.app's architectures. You can add iPhone's armv7s architectu

  8. struts2.3 创建工程

    1:在该网站下载struts2.3.16.3,目前为最新版.http://www.struts.apache.org/download.cgi 不妨下载“Full Distribution”版本 下载 ...

  9. HDU - 3966 Aragorn's Story(树链剖分入门+线段树)

    HDU - 3966 Aragorn's Story Time Limit: 3000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & ...

  10. rxJava rxandroid 学习

    学习地址 很全面: http://blog.csdn.net/meegomeego/article/details/49155989 final String[] words = {"Hel ...