Spring MVC - Weder BindingResult noch einfaches Zielobjekt für Bean-Name "xxx" als Anforderungsattribut verfügbar.

Problem

Kürzlich wurde der Link://Spring-MVC/Spring-MVC-Form-Handling-Beispiel/[Spring MVC xml-basierter Formularcontroller]in Link://Spring-MVC/Spring-MVC-Form-Handling-Annotation umgewandelt -example/[Anmerkungsbasierter Formularcontroller], und die folgende Fehlermeldung wird angezeigt. + + SEVERE: Weder BindingResult noch einfaches Zielobjekt für Bean-Name 'customerForm' als Anforderungsattribut verfügbar. + Java.lang.IllegalStateException: Weder BindingResult noch einfaches Zielobjekt für Bean-Name 'customerForm' als Request-Attribut + + gab an, dass die Bean "customerForm" nicht vorhanden ist und dass der View-Resolver 100% richtig konfiguriert ist und die View-Seite "CustomerForm.jsp" vorhanden ist.

Form Controller

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

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

View Resolver

         ...
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
              <property name="prefix">
                  <value>/WEB-INF/pages/</value>
              </property>
              <property name="suffix">
                 <value>.jsp</value>
             </property>
        </bean>

Lösung

Der Grund ist der falsche Ansichtsname in der JSP-Seite (siehe unten).

<form:form method="POST" commandName="customerForm">

Die "customerForm" ist nicht mehr im Controller-Mapping vorhanden, siehe Anmerkungsmapping @ RequestMapping ("/customer.htm") , sollte sich in "customer" ändern.

<form:form method="POST" commandName="customer">

Ähnliche Fälle

Ich habe ziemlich viele ähnliche Fälle in der Validator- oder SimpleFormController-Klasse gesehen. Stellen Sie zur Lösung des Problems sicher, dass der Name der Zuordnung übereinstimmt oder existiert.