Spring4下validation数据校验无效(maven)

本文介绍如何在SpringMVC4项目中集成Hibernate Validator实现数据校验。包括添加依赖、定义校验规则及控制器中使用校验结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC4使用数据校验的时候需要使用hibernate-validator的包
  • 第一步添加依赖
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>2.0.0.Final</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.4.1.Final</version>
    </dependency>
  • 第二步添加校验注解
package com.demo.model;
/*
* spring4 用hibernate中的validation
* 
* */
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Size;

public class User {
    private String username;
    private String password;
    private String nickname;
    private String email;
    public User(){

    }

    public User(String username, String password, String nickname, String email) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.email = email;
    }

    @NotBlank(message = "用户名不能为空")
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Size(min = 6,max = 20,message = "密码为6-20位")
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    @Email(message = "请输入合法的邮箱")
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
  • 第三步在控制器中对指定参数进行校验注解 (注:BindingResult 必须紧跟在@Validate)
    //@Validated指定验证对象 BindingResult紧跟Validated
    @RequestMapping(value="/add",method = RequestMethod.POST)
    public String add(@Validated User user, BindingResult br){
        System.out.println(br);
        System.out.println(br.getErrorCount());
        if(br.hasErrors())
            return "user/add";
        users.put(user.getUsername(),user);
        return "redirect:/user/users";
    }
  • 注:这个配置也会影响到校验是否生效
<mvc:annotation-driven/>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值