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.