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.