hibernate-validator验证请求参数
Posted LinWenLi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate-validator验证请求参数相关的知识,希望对你有一定的参考价值。
开发接口要进行请求参数内容格式校验,比如在接收到请求参数后依次需要进行数据内容判空、数据格式规范校验等,十分麻烦,于是尝试用hibernate-validator进行参数校验,简单记录一下使用步骤:
1.导入hibernate-validator的jar包依赖到maven项目的pom.xml文件中
2.在springmvc.xml中进行配置加载hibernate-validator的bean
<!-- 启用hibernate-validator的注解 --> <mvc:annotation-driven validator="validator"/>
<bean id="hibernate_validator_messages" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 这个用来写验证的提示信息模板,此处注去 --> <!-- <property name="basenames"> <list> <value>/WEB-INF/hibernate_validator_messages/hibernate_validator_message_zh_CN</value> </list> <property> --> <property name="fileEncodings"> <props> <prop key="/WEB-INF/hibernate_validator_messages/hibernate_validator_message_zh_CN">UTF-8</prop> </props> </property> </bean> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <property name="validationMessageSource" ref="hibernate_validator_messages"/> </bean>
3.在实体类中使用注解进行参数校验
public class User{ // 这个注解表示name必须不为空,否则就提示message @NotNull(message = "name不能为空") private String name; getter/setter........... }
4.在接口方法处添加校验标记
@Controller public class UserController { // @Valid表示会对User接收到的参数进行校验,当有参数校验错误时errors中将有错误,错误信息就是预设的message @PostMapping(value = "/register") public String register(@Valid User user, Errors errors) { if (errors.hasErrors()) { return "register"; } return "redirect:/index"; } }
这玩意应该可以写在切面里,再试试看,校验一共有哪些常用注解先不写了,这里只作简单记录,后续再补充。
以上是关于hibernate-validator验证请求参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用java validation api进行参数校验----Hibernate-Validation
在Spring中使用数据验证组件hibernate-validator