gpt4 book ai didi

spring - Thymeleaf 注册页面 - 执行处理器 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' 期间出错

转载 作者:行者123 更新时间:2023-12-04 15:09:21 25 4
gpt4 key购买 nike

我正在为网站制作注册页面。我知道为了创建新用户,需要一个 id,所以我们有以下字段:

<input type="hidden" th:field="{*id} />

但是,当我转到该页面时,我收到了我在这篇文章标题中提到的错误。

这是有问题的表格:
<form th:action="@{/users/register}" th:object="${user}" class="form-signin" method="POST">
<h2 class="form-signin-heading">Register</h2>
<input type="hidden" th:field="*{id}" />
<label for="inputUsername" class="sr-only">Username*</label>
<input type="text" th:field="*{username}" name="username" id="inputUsername" class="form-control" placeholder="Username" required="required" autofocus="autofocus" />
<label for="inputEmail" class="sr-only">Email Address*</label>
<input type="text" th:field="*{email}" name="email" id="inputEmail" class="form-control" placeholder="Email address" required="required" autofocus="autofocus" />
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" th:field="*{password}" name="password" id="inputPassword" class="form-control" placeholder="Password" required="required" />
<label for="inputConfirmPassword" class="sr-only">Confirm Password</label>
<input type="password" th:field="${confirmPassword}" name="confirmPassword" id="inputConfirmPassword" class="form-control" placeholder="Confirm password" required="required" />
<button class="btn btn-lg btn-primary btn-block" type="submit">Register</button>
</form>

这是我的用户 Controller :
@RequestMapping("/register")
public String registerAction(Model model) {
model.addAttribute("user", new User());
model.addAttribute("confirmPassword", "");
return "views/users/register";
}

@RequestMapping(value="/register", method = RequestMethod.POST)
public String doRegister(User user) {
User savedUser = userService.save(user);
return "redirect:/"; //redirect to homepage
}

以及 User 实体的第一部分:
@Entity
@Table(name = "users")
public class User {

// Default constructor require by JPA
public User() {}

@Column(name = "id")
@Id @GeneratedValue
private Long id;

public void setId(long id) {
this.id = id;
}

public long getId() {
return id;
}

据我所知,这里没有任何问题,所以我被卡住了。

我正在关注这个例子: https://github.com/cfaddict/spring-boot-intro

有任何想法吗?

最佳答案

问题是您声明 id 属性的方式。该字段使用为空的引用类型 Long。 getter 使用原始 long。当 Spring 访问 id 字段时,它会尝试将导致错误的空值拆箱。将您的域类更改为

@Entity
@Table(name = "users")
public class User {

// Default constructor required by JPA
public User() {}

@Id
@Column(name = "id")
@GeneratedValue
private Long id;

public void setId(Long id) {
this.id = id;
}

public Long getId() {
return id;
}
}

关于spring - Thymeleaf 注册页面 - 执行处理器 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' 期间出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36072304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com