@Valid配置
来源:互联网 发布:成都怎么样知乎 编辑:程序博客网 时间:2024/06/10 22:14
MAVEN项目采用SSM框架
PS:本人纯新手,刚入门,留此博客,主要为今后自己学习或工作中温习,矫正,改进。
1.首先在POM.XML中引入下面两个jar包
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api --> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.0.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.4.1.Final</version> </dependency>
2.在springmvc的dispatcher-servlet(本人采用的是默认配置)中引入如下配置
<!-- 配置数据校验 --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> </bean>当然也可以如下配置,更加灵活:
<!-- 自定义消息数据源 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename"<span style="font-size:24px;"> value="classpath:messages.properties" </span>/> <property name="fileEncodings" value="utf-8" /> <property name="cacheSeconds" value="120" /> </bean> <!-- 配置数据校验 --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties --> <property name="validationMessageSource" ref="messageSource" /> </bean>其中,message.properties中主要是为在校验参数中引入的${X},进行取值。另外,
<!-- 校验数据注解 --> <mvc:annotation-driven />这根据各自业务进行扩展配置
3.写测试表格
import lombok.Data;import org.hibernate.validator.constraints.NotEmpty;/** * Created by Quincy on 2017/9/20. */@Datapublic class AppUserForm { @NotEmpty(message = "姓名必填") private String userName; @NotEmpty(message = "手机号必填") private String phone; @NotEmpty(message = "公司必填") private String corporateName; @NotEmpty(message = "密码必填") private String password; @NotEmpty(message = "验证码必填") private String verificationCode;}
其中此处注意引入的包是:
org.hibernate.validator.constraints.NotEmpty
千万别引入
import javax.validation.constraints.*
否则会报出以下异常
No validator could be found for type: java.lang.String.
但具体为什么需要导入hibernate.validator 而不是 javax.validator,本人暂时仍未弄清楚,可能跟SpringMVC中配置的validator下的类有关。
4.最后在Controller层进行@Valid注解的使用
/** * 注册 * */ @RequestMapping(value = "/register",method = RequestMethod.POST) @ResponseBody public ServerResponse register(@Valid AppUserForm appUserForm, BindingResult bindingResult){ if (bindingResult.hasErrors()){ log.error("【注册用户】参数不正确,appUserForm = {}", appUserForm); throw new UserException(ResultEnum.PARAM_ERROR.getCode(),bindingResult.getFieldError().getDefaultMessage()); } return appUserService.register(appUserForm); }而此处@Valid 引入的是
import javax.validation.Valid;
注意@Valid 需要紧跟所检测的对象,另外BindingResult 是必不可少的。
通过后面测试,以上配置成功进行了数据校验。
阅读全文
0 0
- @Valid配置
- @Valid
- mac 配置环境变量出现export `=' not a valid identifier
- 基于Java配置Spring @Valid无法映射国际化得解决
- spring4 hibernate5配置 getHibernateFlushMode is not valid without active transaction
- Spring Cloud Config配置SVN:No valid credentials provided
- eclipse配置weblogic时,提示does not contain a valid WebLogic Server install
- Mac 配置Android Studio 出现 can't find valid JVM问题
- Hibernate 配置使用线程报错org.hibernate.HibernateException: createCriteria is not valid without active trans
- Qt新建项目No valid kits found配置qmake与Qt versions
- Java开发之环境配置报错export `=' not a valid identifier的一般原因
- Valid Number
- Valid Palindrome
- Valid Parentheses
- Valid Number
- Valid Sudoku
- Valid Palindrome
- Valid Palindrome
- JVM参数调优
- HDU1236排名
- 刷题基础----Manacher算法求解最大回文子串
- 实验一:顺序表
- Kotlin类型层级一览(翻译原文)
- @Valid配置
- 用网页实现判断某一年是否为闰年
- C语言初步-第37讲: 循环嵌套(大奖赛计分 )<scanf(),printf()格式控制小结>
- Poj 1862 Stripies【贪心+数学】
- 【实验报告】高软实验2
- leetcode Trim a Binary Search Tree 修剪二叉搜索树
- 第三周第二次课(链表)
- 如何理解const char*, char const*, char*const等
- redis基础信息