如何解决BindingResult.hasErrors() 始终返回 false,即使 @NotEmpty 字段的 @Valid 为 true
嘿,当客户在主页上填写我的表格时,我正在尝试处理空条目。问题是 BindingResult
有错误方法总是返回 false
。我不知道为什么,因为我相信我的 POM 中有正确的依赖项,并且我在 UserInfoDTO
中用 @NotEmpty
注释了我的字段属性,所以我不确定我做错了什么。我想在客户填写表格时防止出现空条目。
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<h1 align="center">Love Calculator</h1>
<form:form action="process-homepage" method="get" modelAttribute="userInfo" >
<div align="center">
<p>
<label for="yn">Your Name:</label>
<form:input id="yn" path="userName"/>
</p>
<p>
<label for="cn">Crush Name:</label>
<form:input id="cn" path="crushName"/>
</p>
<input type="submit" value="calculate">
</div>
</form:form>
</body>
</html>
import com.seleniumexpress.selenium_express.api.UserInfoDTO;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
import java.util.List;
@Controller
public class LCAppController {
@RequestMapping("/")
public String showHomePage(@ModelAttribute("userInfo") UserInfoDTO userInfoDTO) {
return "home-page";
}
@RequestMapping("/process-homepage")
public String processHomePage(@Valid @ModelAttribute("userInfo") UserInfoDTO userInfoDTO,BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
List<ObjectError> allErrors = bindingResult.getAllErrors();
for (ObjectError objectError : allErrors)
System.out.println(objectError);
return "home-page";
}
System.out.println("No errors...");
return "result-page";
}
}
import javax.validation.constraints.NotBlank;
public class UserInfoDTO {
@NotBlank(message = "* User Name cannot be blank")
private String userName;
private String crushName;
public UserInfoDTO() {
System.out.println("UserInfoDTO constructor being called...");
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getCrushName() {
return crushName;
}
public void setCrushName(String crushName) {
this.crushName = crushName;
}
@Override
public String toString() {
return "UserInfoDTO{" +
"userName='" + userName + '\'' +
",crushName='" + crushName + '\'' +
'}';
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.seleniumexpress</groupId>
<artifactId>selenium-express</artifactId>
<version>1.0-SNAPSHOT</version>
<name>selenium-express</name>
<packaging>war</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.7.0</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.0.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version>
</plugin>
</plugins>
</build>
</project>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。