Thymeleaf 模板处理异常:BindingResult 和普通目标对象均可用作请求属性

Thymeleaf Template Processing Exception: Neither BindingResult nor plain target object available as request attribute

提问人:Vitalii 提问时间:10/11/2023 最后编辑:Vitalii 更新时间:10/11/2023 访问量:24

问:

问:我在尝试将表单字段绑定到Spring Boot应用程序中的对象时遇到了Thymeleaf问题。我收到以下错误消息:

org.thymeleaf.exceptions.TemplateProcessingException:执行处理器“org.thymeleaf.spring6.processor.SpringInputGeneralFieldTagProcessor”期间出错(模板:“account-create” - 第 22 行,第 54 列) ... java.lang.IllegalStateException:Bean 名称“accountCreationRequestDto”的 BindingResult 和普通目标对象均不能用作请求属性 ...

这是我的 Thymeleaf 模板中的相关代码:

<form th:action="@{/create}" method="post" th:object="${accountCreationRequestDto}">
    <label for="clientId">Client ID:</label>
    <input type="text" id="clientId" name="clientId" th:field="*{clientId}" required>
    <span th:if="${#fields.hasErrors('clientId')}" th:errors="*{clientId}"></span>

    <!-- Other form fields... -->

    <button type="submit">Create Account</button>
</form>

这是我的控制器中的相关代码:

@GetMapping("/create")
public String showCreateAccountForm(Model model) {
    model.addAttribute("accountCreationRequestDto", new AccountCreationRequestDto());
    return "account-create";
}

@PostMapping("/create")
public String createAccount(@ModelAttribute("accountCreationRequestDto") AccountCreationRequestDto accountCreationRequestDto, Model model) {
    // Process account creation
    return "redirect:/success";
}

AccountCreationRequestDto 对象将传递给 showCreateAccountForm 方法中的 model 属性。但是,在提交表单时,我遇到了上述错误。Thymeleaf 模板中的表单操作看起来与控制器中 createAccount 方法的映射匹配。

在解决此问题方面的任何帮助将不胜感激。谢谢!

spring-boot spring-mvc 百里香叶 模型绑定 模板引擎

评论


答: 暂无答案