【发布时间】:2018-01-27 18:57:30
【问题描述】:
我想创建一个包含单个 Number 类型字段的表单,并通过 POST 方法将其值传递给控制器。
UserController.java
@GetMapping("/users/{id}")
public String showUserProfile(@PathVariable final Long id, Model model) {
model.addAttribute("user", userService.getUserById(id));
model.addAttribute("howMuchToIncrease", new Integer(0));
return "user/user_item";
}
@PostMapping("/users/{id}/refill")
public String showButtonTopUpBalance(@PathVariable final Long id,
@ModelAttribute("howMuchToIncrease") Integer howMuch) {
userService.topUpBalance(id, howMuch);
return "redirect:/users/" + id;
}
用户/user_item.html
<form role="form" method="post" th:object="${howMuchToIncrease}"
th:action="@{'/users/{id}/refill' (id=${user.id})}">
<input type="number" th:field="${howMuchToIncrease}"/>
<button type="submit">To Up Balance</button>
</form>
但是在我按下确认按钮后,一切都以这个错误结束:
无法实例化 [java.lang.Integer]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: java.lang.Integer.() org.springframework.beans.BeanInstantiationException:无法实例化[java.lang.Integer]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: java.lang.Integer.()
【问题讨论】:
-
哪一行导致了异常?以及用户id的类型是什么
-
@esprittn 第二种方法的签名,我想。长型
标签: java spring-boot thymeleaf