尝试执行表单验证时出错
Getting error when trying to perform form validation
我正在为一个网站制作注册页面,但是当我进入该页面时出现错误:处理器执行期间出错'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor'
控制器
@RequestMapping(value = { "/signup" }, method = RequestMethod.POST)
public ModelAndView createUser(@Valid AppUser appUser, BindingResult bindingResult) {
ModelAndView model = new ModelAndView();
AppUser appUserExists = appUserService.findByEmail(appUser.getEmail());
if (appUserExists != null) {
bindingResult.rejectValue("email", "error.user", "This email already exists!");
}
if (bindingResult.hasErrors()) {
model.setViewName("user/signup");
} else {
appUserService.saveUser(appUser);
model.addObject("msg", "User has been registered succesfully!");
model.addObject("appuser", new AppUser());
model.setViewName("user/login");
}
return model;
}
表格
<form class="form-horizontal" role="form" th:action="@{/signup}" th:object="${appUser}" method="post" style="border: 1px solid #ccc">
<label for="name">First Name</label>
<input type="text" th:field="*{firstname}" class="form-control" id="firstname" placeholder="First Name" required autofocus />
<label for="name">Last Name</label>
<input type="text" th:field="*{lastname}" class="form-control" id="lastname" placeholder="Last name" required autofocus />
<label for="email"><b>Email</b></label>
<input type="email" th:field="*{email}" class="form-control" id="email" placeholder="email@domain.com" required autofocus />
<label for="psw"><b>Password</b></label>
<input type="password" th:field="*{password}" class="form-control" id="password" placeholder="Password" required />
</form>
AppUserClass
@Entity
@Table(name = "user")
public class AppUser {
@Id
@Column(name = "id_user", length = 10, nullable = false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "firstname", length = 30, nullable = false, unique = true)
private String firstName;
@Column(name = "lastname", length = 30, nullable = false, unique = true)
private String lastName;
@Column(name = "email", length = 30, nullable = false, unique = true)
private String email;
@Column(name = "password", length = 500, nullable = false, unique = false)
private String password;
@Column(name = "active", nullable = false)
private int active;
public AppUser() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
....
}
据我所见,这里没有任何问题,所以我被卡住了。
有什么想法吗?
控制器中的appuser变量应该是appUser。并且模板中的姓氏和名字必须是 lastName 和 firstName,如 class.
我正在为一个网站制作注册页面,但是当我进入该页面时出现错误:处理器执行期间出错'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor'
控制器
@RequestMapping(value = { "/signup" }, method = RequestMethod.POST)
public ModelAndView createUser(@Valid AppUser appUser, BindingResult bindingResult) {
ModelAndView model = new ModelAndView();
AppUser appUserExists = appUserService.findByEmail(appUser.getEmail());
if (appUserExists != null) {
bindingResult.rejectValue("email", "error.user", "This email already exists!");
}
if (bindingResult.hasErrors()) {
model.setViewName("user/signup");
} else {
appUserService.saveUser(appUser);
model.addObject("msg", "User has been registered succesfully!");
model.addObject("appuser", new AppUser());
model.setViewName("user/login");
}
return model;
}
表格
<form class="form-horizontal" role="form" th:action="@{/signup}" th:object="${appUser}" method="post" style="border: 1px solid #ccc">
<label for="name">First Name</label>
<input type="text" th:field="*{firstname}" class="form-control" id="firstname" placeholder="First Name" required autofocus />
<label for="name">Last Name</label>
<input type="text" th:field="*{lastname}" class="form-control" id="lastname" placeholder="Last name" required autofocus />
<label for="email"><b>Email</b></label>
<input type="email" th:field="*{email}" class="form-control" id="email" placeholder="email@domain.com" required autofocus />
<label for="psw"><b>Password</b></label>
<input type="password" th:field="*{password}" class="form-control" id="password" placeholder="Password" required />
</form>
AppUserClass
@Entity
@Table(name = "user")
public class AppUser {
@Id
@Column(name = "id_user", length = 10, nullable = false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "firstname", length = 30, nullable = false, unique = true)
private String firstName;
@Column(name = "lastname", length = 30, nullable = false, unique = true)
private String lastName;
@Column(name = "email", length = 30, nullable = false, unique = true)
private String email;
@Column(name = "password", length = 500, nullable = false, unique = false)
private String password;
@Column(name = "active", nullable = false)
private int active;
public AppUser() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
....
}
据我所见,这里没有任何问题,所以我被卡住了。 有什么想法吗?
控制器中的appuser变量应该是appUser。并且模板中的姓氏和名字必须是 lastName 和 firstName,如 class.