我目前正在将许多.jsp页面转换为HTML使用Thymeleaf. 我已经成功转换了其中一些,但是在检查带有表单标签的任何页面时,我收到以下错误:Attribute name cannot be null or empty during the initial page load.查看代码 <!-- Registration Form --> <form action="#" th:action="@{/register/processRegistrationForm}" th:object="${user}" method="POST" class="form-horizontal"> <!-- User name --> <div style="margin-bottom: 25px" class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input type="text" th:field:="*{userName}" placeholder="Username (*)" class="form-control" /> </div> <!-- Password --> <div style="margin-bottom: 25px" class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span> <input type="text" th:field:="*{password}" placeholder="First Name (*)" class="form-control" /> </div>控制器代码@GetMapping("/showRegistrationForm")public String showMyRegistrationPage( Model theModel) { theModel.addAttribute("user", new UserRegistrationDto()); return "Login/registration-form";}@PostMapping("/processRegistrationForm")public String processRegistrationForm( @Valid @ModelAttribute ("user") UserRegistrationDto userDto, BindingResult theBindingResult, Model theModel) { String userName = userDto.getUserName(); logger.info("Processing registration form for: " + userName); // form validation if (theBindingResult.hasErrors()){ return "Login/registration-form"; }
3 回答
森栏
TA贡献1810条经验 获得超5个赞
我认为问题出在这两行上:
<input type="text" th:field:="*{userName}" placeholder="Username (*)" class="form-control" />
<input type="text" th:field:="*{password}" placeholder="First Name (*)" class="form-control" />
:由于您在后面添加了“”列,th:field因此可能会出现错误。所以这两行应该是这样的:
<input type="text" th:field="*{userName}" placeholder="Username (*)" class="form-control" />
<input type="text" th:field="*{password}" placeholder="First Name (*)" class="form-control" />
由于 thymeleaf 没有提供对问题或有问题的行号的良好解释,因此查找问题确实变得很头疼。它只是说“属性名称不能为空”,而您只是搜索空属性。
杨__羊羊
TA贡献1943条经验 获得超7个赞
我遇到了同样的问题,我只是将错误减少 1 1。所以我对每个输入和每个表单都进行了评论。而问题就在这里
<form action="#" th:action="@{/register/processRegistrationForm}" th:object="${user}" method="POST" class="form-horizontal">
在th:object="${user}"
,也许这个技巧可以帮助你一点,因为这个问题还没有解决。
添加回答
举报
0/150
提交
取消