开发接口要进行请求参数内容格式校验,比如在接收到请求参数后依次需要进行数据内容判空、数据格式规范校验等,十分麻烦,于是尝试用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验证请求参数的更多相关文章

  1. spring 项目中使用 hibernate validator验证输入参数

    1 hibernate validator 官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_si ...

  2. 使用@Valid和BindingResult验证请求参数的合法性并处理校验结果

    /** * 添加用户,使用@RequestBody将请求体映射到Action方法参数中 * 使用@Valid注解验证请求参数的合法性 * 使用BindingResult处理校验结果 * @param ...

  3. Hibernate Validator验证框架中@NotEmpty、@NotBlank、@NotNull 的区别

    Hibernate Validator验证框架中@NotEmpty.@NotBlank.@NotNull的主要使用情况 @NotEmpty  用在集合类上面 @NotBlank   用在String上 ...

  4. Springboot采用hibernate-validate验证请求参数

    在springboot项目使用hibernate-validate对请求参数添加注解进行校验 常用注解 @Null,标注的属性值必须为空 @NotNull,标注的属性值不能为空 @AssertTrue ...

  5. Hibernate Validator验证标签说明

    Hibernate Validator是JSR-303的一个实现. 在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比.注解更加简洁.灵活. Bean V ...

  6. 如何在Asp.Net WebApi接口中,验证请求参数中是否携带token标识!

    [BasicAuthentication] public abstract class ApiControllerBase : ApiController { #region Gloal Proper ...

  7. Hibernate validator验证

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

  8. spring MVC 使用 hibernate validator验证框架,国际化配置

    spring mvc使用hibernate validator框架可以实现的功能: 1. 注解java bean声明校验规则. 2. 添加message错误信息源实现国际化配置. 3. 结合sprin ...

  9. spring boot 使用hibernate validator 验证service

    不在controller中验证,而是在service中验证. spring boot 默认使用的就是hibernate validator,存在于pom的spring-boot-starter-web ...

随机推荐

  1. Go JSON嵌套解析失败

    //结构体成员变量名首字母要大写,要小写需要用tag,请看范例. //如果没有tag,嵌套时就无法解析属性,解析失败就是空值. type messageRow struct { UserID stri ...

  2. 深入理解Android

    http://blog.csdn.net/innost/article/details/47254381

  3. SpringCloud开发学习总结(七)—— 声明式服务调用Feign(一)

    在实践的过程中,我们会发现在微服务架构中实现客户端负载均衡的服务调用技术Spring Cloud Ribbon<SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon> ...

  4. Android开发学习——Android Studio配置SVN

    一.基本配置 1. 下载这个,然后双击 安装,按下图这样选 然后 傻瓜式安装 2. 进入Android studio设置:Use Command Line Client 选择浏览到第1步你本地安装 T ...

  5. 将call/apply方法应用于其他对象上的几种方法

    在处理类数组中,发现了两种将数组方法应用于类数组的方法,现将call/apply的常用方式总结一下. 一.当做函数调用 function print_vars(var1,var2){ console. ...

  6. WindowsService+Quartz.NET快速搭建

    新建一个Windows服务项目 nuget安装Quartz.NET,我这边使用的是2.3.3版本 1. Service改名 2. 添加安装程序,改名 3. ServiceInstaller->属 ...

  7. eigenface资料整合

    把图片映射到能最好区分的空间(pca),在这个空间同类是聚集的,而不同类之间间隔大.这相当于一个模型,把验证集也映射到此空间,然后利用knn对验证集分类. pca:https://wenku.baid ...

  8. COMMIT - 提交当前事务

    SYNOPSIS COMMIT [ WORK | TRANSACTION ] DESCRIPTION 描述 COMMIT 提交当前事务. 所有事务的更改都将为其他事务可见,而且保证当崩溃发生时的可持续 ...

  9. IIS HTTP 错误 401.3的解决办法

    目标网站添加新用户Everyone,选上需要的Everyone用户权限

  10. MySQL系列(一)--数据类型

    如何选择优化的数据类型: 1.通常更小的更好 相同级别的数据类型,选择占据空间更小的数据类型.更小的数据类型通常更快,因为占用更少的磁盘.内存和CPU缓存,处理时需要的 CPU周期也更少,但是要确保需 ...