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

1、pom.xml

  <dependencies> 
    <dependency> 
      <groupId>org.springframework</groupId>  
      <artifactId>spring-context</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework</groupId>  
      <artifactId>spring-webmvc</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>jakarta.platform</groupId>  
      <artifactId>jakarta.jakartaee-web-api</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId>  
      <artifactId>jackson-databind</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.projectlombok</groupId>  
      <artifactId>lombok</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.hibernate.validator</groupId>  
      <artifactId>hibernate-validator</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.hibernate.validator</groupId>  
      <artifactId>hibernate-validator-annotation-processor</artifactId> 
    </dependency> 
  </dependencies>

2、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0">

	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

</web-app>

3、springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.atguigu.controller"/>
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"><!-- 默认编码是iso-8859-1 -->
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/plain;charset=utf-8</value>
                        <value>text/html;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
</beans>

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;
        }
    }
}

 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() 来检查是否有错误发生,如果有,我们可以返回一个错误页面,如果没有,我们可以处理表单提交并返回一个成功页面

原文地址:https://blog.csdn.net/m0_65152767/article/details/134652511

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_1012.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注