为了账号安全,请及时绑定邮箱和手机立即绑定

将 JSP 转换为 Thymleaf:属性名称不能为 Null 或空

将 JSP 转换为 Thymleaf:属性名称不能为 Null 或空

慕后森 2023-07-19 16:25:44
我目前正在将许多.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 没有提供对问题或有问题的行号的良好解释,因此查找问题确实变得很头疼。它只是说“属性名称不能为空”,而您只是搜索空属性。


查看完整回答
反对 回复 2023-07-19
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我遇到了同样的问题,我只是将错误减少 1 1。所以我对每个输入和每个表单都进行了评论。而问题就在这里

<form action="#" th:action="@{/register/processRegistrationForm}" th:object="${user}" method="POST" class="form-horizontal">

th:object="${user}",也许这个技巧可以帮助你一点,因为这个问题还没有解决。


查看完整回答
反对 回复 2023-07-19
?
繁星coding

TA贡献1797条经验 获得超4个赞

也许晚了,但我想我明白问题所在了。

th:field:="*{password}"

:太多

应该

th:field="*{password}"


查看完整回答
反对 回复 2023-07-19
  • 3 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信