Spring MVC – BindingResultも、リクエスト名として使用可能なBean名「xxx」のプレーンターゲットオブジェクトもありません。
問題
最近、Spring MVC xml-based form controllerをannotation-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クラスでも同様のケースが非常に多く見られます。 解決するには、マッピング名が一致または存在することを確認してください。