本ページはプロモーションが含まれています。

スポンサーリンク

エラー・例外

SpringBoot-thymeleafでjava.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'xxx' available as request attribute

投稿日:

IllegalStateExceptionのの出力例

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Jan 27 09:09:41 JST 2022
There was an unexpected error (type=Internal Server Error, status=500).
An error happened during template parsing (template: "class path resource [templates/children/register.html]")
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/children/register.html]")
...
Caused by: org.attoparser.ParseException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor' (template: "children/register" - line 16, col 56)
...
Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor' (template: "children/register" - line 16, col 56)
...
Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'child' available as request attribute

IllegalStateExceptionの原因と解決策

ログの一番下に、

Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'child' available as request attribute

このような出力があります。

HTMLテンプレート内の"child"というオブジェクトが利用可能になってない。
という意味です。

"child"をmodel.addAttributeしているか確認してください。

        if (bindingResult.hasErrors()) {
            return "children/register";
        }
        if (bindingResult.hasErrors()) {
            model.addAttribute("child", childRegisterForm);
            return "children/register";
        }

上記は一例ですが、バリデーションチェック後にもう一度入力画面を表示するときに、model.addAttributeするのを忘れていたため、このエラーが発生しています。

本ページはプロモーションが含まれています。

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-エラー・例外

Copyright© 【Spring Hack】 , 2024 All Rights Reserved Powered by AFFINGER5.