spring-webmvc数据校验

1、pom.xml

   
     
      org.springframework  
      spring-context 
      
     
      org.springframework  
      spring-webmvc 
      
     
      jakarta.platform  
      jakarta.jakartaee-web-api 
      
     
      com.fasterxml.jackson.core  
      jackson-databind 
      
     
      org.projectlombok  
      lombok 
      
     
      org.hibernate.validator  
      hibernate-validator 
      
     
      org.hibernate.validator  
      hibernate-validator-annotation-processor 
     
  

2、web.xml




	
		DispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:springmvc.xml
		
		1
	

	
		DispatcherServlet
		/
	

3、springmvc.xml




    
    
    
        
            
                
                    
                        text/plain;charset=utf-8
                        text/html;charset=utf-8
                    
                
            
        
    

4、User.java

package com.atguigu.pojo;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @Max(150)
    @Min(0)
    private Integer age;
    @Length(min = 6,max = 20)
    private String name;
    @Email
    private String email;
}

5、ValidateController.java

package com.atguigu.controller;
import com.atguigu.pojo.User;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/validate")
public class ValidateController {

    @PostMapping
    public Object h01(@Validated @RequestBody User user , BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return bindingResult.getFieldError().toString();
        } else {
            System.out.println(user);
            return user;
        }
    }
}

spring-webmvc数据校验_第1张图片

 6、BindingResult

BindingResult 是 Spring MVC 框架中的一个接口,它用于处理数据绑定过程中可能发生的错误。在 Spring MVC 中,当你尝试将请求参数绑定到一个 Java 对象(例如一个表单提交)时,如果发生任何错误,例如类型转换错误、缺少必需的字段等,这些错误将被捕获并存储在一个 BindingResult 对象中。

你可以在你的控制器方法中包含一个 BindingResult 参数,Spring MVC 会自动填充该参数,这样你就可以检查和处理任何在数据绑定过程中发生的错误。

下面是一个简单的例子,演示了如何使用 BindingResult

@Controller  
public class MyController {  
  
    @RequestMapping(value = "/submitForm", method = RequestMethod.POST)  
    public String submitForm(@ModelAttribute("myForm") MyForm myForm, BindingResult result) {  
        if (result.hasErrors()) {  
            // 数据绑定过程中发生错误,处理错误  
            return "error";  
        } else {  
            // 数据绑定成功,处理表单提交  
            return "success";  
        }  
    }  
}

在这个例子中,我们有一个名为 MyForm 的表单对象,我们尝试将请求参数绑定到这个对象上。如果数据绑定过程中发生任何错误,这些错误将被捕获并存储在 result 对象中。我们可以通过调用 result.hasErrors() 来检查是否有错误发生,如果有,我们可以返回一个错误页面,如果没有,我们可以处理表单提交并返回一个成功页面。

你可能感兴趣的:(#,Spring,Web,MVC,springwebmvc,Max,Min,Length,Email,艾特符号Validated,BindingResult)