1、pom.xml
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<?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<?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
javapackage 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
javapackage 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
:
java@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-webmvc数据校验
丁总学Java2023-11-29 21:26
相关推荐
太空眼睛11 天前
【Email】基于SpringBoot3.4.x集成发送邮件功能CoderJia程序员甲1 个月前
重学SpringBoot3-如何发送 Email慧都小妮子2 个月前
借助Aspose.Email,使用 PowerShell 和 .NET 将 MSG 转换为 EMLbug菌¹3 个月前
滚雪球学MySQL[3.2讲]:MySQL聚合函数与分组详解:COUNT、SUM、AVG、MAX、MIN及GROUP BY与HAVING麻辣香蝈蝈4 个月前
【Java】Spring Boot使用 Email 传邮件 (上手图解)xianyinsuifeng6 个月前
AWS无服务器 应用程序开发—第七章 邮件服务 发布订阅(Amazon SES)陌尘(MoCheeen)6 个月前
git配置1-不同的项目使用不同用户名或邮箱Damon小智9 个月前
C#进阶-实现邮箱收发功能_pass_9 个月前
email + celery+django 异步发送邮件功能的实现core5121 年前
Flink max maxby区别