春のMVC - BindingResultも、Bean名 'xxx’のプレーンターゲットオブジェクトも要求属性として利用できません.

Spring MVC – BindingResultも、リクエスト名として使用可能なBean名「xxx」のプレーンターゲットオブジェクトもありません。

問題

最近、Spring MVC xml-based form controllerannotation-based form controllerに変換したところ、次のエラーメッセージが表示されました。

SEVERE: Neither BindingResult nor plain target object for bean name ‘customerForm’ available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name ‘customerForm’ available as request attribute


上記エラーメッセージは、「customerForm」Beanが存在しないことを明確に示しており、ビューリゾルバーが正しく構成され、「CustomerForm.jsp」ビューページが存在することを100%確認しています。

フォームコントローラー

@Controller
@RequestMapping("/customer.htm")
public class CustomerController{

       @RequestMapping(method = RequestMethod.GET)
    public String initForm(ModelMap model){
        //return form view
        return "CustomerForm";
    }

リゾルバーを表示

         ...
    
              
                  /WEB-INF/pages/
              
              
                 .jsp
             
        

溶液

原因は、JSPページの誤ったビュー名です。以下を参照してください。

「customerForm」はコントローラーマッピングに存在しなくなりました。注釈マッピング@RequestMapping(“/customer.htm”)を参照してください。「customer」に変更する必要があります。

同様のケース

バリデーターやSimpleFormControllerクラスでも同様のケースが非常に多く見られます。 解決するには、マッピング名が一致または存在することを確認してください。