【发布时间】:2021-02-27 09:23:44
【问题描述】:
我目前正在学习Spring MVC,数据验证看起来很简单,我的问题如下:当我输入无效的数据并按下提交按钮时,请求映射方法根本没有触发,它发送给我到“HTTP 状态 400 - 错误请求”。我的目标是查看使用“BindingResult”是否有任何错误,但如果输入的数据无效,则方法体不会运行。 (使用休眠验证)。这是一些代码。
用户对象:
public class User {
@NotNull
@Size(min = 4, max = 25, message = "Must be between 4 and 25 characters")
private String firstName;
@NotNull
@Size(min = 4, max = 25, message = "Must be between 4 and 25 characters")
private String lastName;
@Email
private String email;
@Size(min = 8)
private String userPassword;
}
控制器:打开表单页面
@RequestMapping("createAccount")
public String register(Model model) {
model.addAttribute("newUser", new User());
return "register";
}
这就是问题所在。当我按下提交按钮时,此方法应该运行,当数据有效时,它会返回 userinteface.jsp 以及所有输入的数据,但当输入的数据无效时,它会直接将我发送到 HTTP 状态 400 - 错误请求。
@RequestMapping("signUp")
public String signUp(@Valid @ModelAttribute("newUser") User user,
Model model, BindingResult bindingResult) {
model.addAttribute("dbUser", user);
if (bindingResult.hasErrors()) return "register";
return "userinterface";
}
这是我的 register.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Register</title>
<meta name="description" content="An interactive getting started guide for Brackets.">
<link rel="stylesheet" type="text/css" href="resources/css/main.css" />
<link href="https://fonts.googleapis.com/css2?family=Nova+Round&display=swap" rel="stylesheet">
</head>
<body>
<div class = "container">
<h1>- Register -</h1>
<ul>
<form:form action ="signUp" modelAttribute="newUser">
<form:input path="firstName" class = "cred" placeholder="First Name"/>
<form:errors path="firstName" cssClass="error"/><br><br>
<form:input path="lastName" class = "cred" placeholder="Last Name"/><br><br>
<form:errors path="lastName" cssClass="error"></form:errors><br><br>
<form:input path="email" class = "cred" placeholder="E-mail"/>
<form:errors path = "email" cssClass="error"/><br><br>
<form:password path="userPassword" class = "cred" placeholder="Password"></form:password><br><br>
<form:errors path="userPassword" cssClass="error"/>
<form:input path="age" type = "number" class = "cred" placeholder="Age"/><br><br>
- <input type ="submit" class = "submitButton" value = "Add User"> -<br><br>
<a href = index.jsp>cancel</a>
</form:form>
</ul>
</div>
</body>
</html>
【问题讨论】:
标签: java hibernate validation spring-mvc