我有一个简单的表单(registration.html)用于输入用户数据(姓/名,电子邮件):
<p th:text="'First name: ' + ${userdto.firstName}" />
<p th:text="'Last name: ' + ${userdto.lastName}" />
<p th:text="'Email: ' + ${userdto.email}" />
在提交时,我想获取输入的数据并将其显示在另一个模板(result.html)中:
@Controller
public class UserDtoController {
@GetMapping("/user/registration")
public String showRegistrationForm(Model model) {
model.addAttribute("user", new Userdto());
return "registration";
}
@PostMapping("/user/registration")
public String registerUserAccount(@ModelAttribute Userdto userdto) {
return "result";
}
}
我的控制器如下:
public class Userdto {
private String firstName;
private String lastName;
private String email;
// plus standard getters and setters ...
}
相应的用户模型是:
class Userdto
这样可以正常工作,但实际上我想将class UserDto
重命名为userdto
(带大写字母“D”)。如果我重命名它,我在提交表单时收到错误:
SpelEvaluationException:EL1007E:在null上找不到属性或字段“firstName”
据我所知,这意味着在输出(result.html)中,{{1}}为空。
为什么会这样,我该如何解决呢?