zoukankan      html  css  js  c++  java
  • 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";
        } 
    }

    这玩意应该可以写在切面里,再试试看,校验一共有哪些常用注解先不写了,这里只作简单记录,后续再补充。

  • 相关阅读:
    SpringMVC拦截器使用
    JavaCORBA
    Mybatis各语句高级用法(未完待续)
    [译文]C# Heap(ing) Vs Stack(ing) in .NET: Part II
    [译文]C# Heap(ing) Vs Stack(ing) in .NET: Part I
    iBatis连接MySQL时的注意事项
    MyBatis入门
    属性(property) VS 数据成员(field)
    [译文]C# Heap(ing) Vs Stack(ing) in .NET: Part III
    LINQ To Objects
  • 原文地址:https://www.cnblogs.com/new-life/p/10257678.html
Copyright © 2011-2022 走看看