Problème
Récemment, je viens de convertir le lien://ressort-mvc/ressort-mvc-formulaire-traitement-exemple/[contrôleur de formulaire Spring MVC basé sur xml]en lien://ressort-mvc/ressort-mvc-formulaire-traitement-annotation -example/[contrôleur de formulaire basé sur des annotations]et affiche le message d’erreur suivant. + + SEVERE: ni BindingResult ni l’objet cible brut pour le nom de bean 'customerForm' disponible en tant qu’attribut de demande + java.lang.IllegalStateException: ni BindingResult ni l’objet cible simple pour le nom de bean 'customerForm' disponible en tant que demande attribut + + Le message d’erreur ci-dessus est clairement a indiqué que le bean «customerForm» n’existait pas et que je suis 100% sûr que le résolveur de vues est configuré correctement et que la page de vue «CustomerForm.jsp» existe déjà.
Contrôleur de forme
@Controller @RequestMapping("/customer.htm") public class CustomerController{ @RequestMapping(method = RequestMethod.GET) public String initForm(ModelMap model){ //return form view return "CustomerForm"; }
Voir le résolveur
... <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>
Solution
Le nom de la vue dans la page JSP est incorrect. Voir ci-dessous.
<form:form method="POST" commandName="customerForm">
Le “customerForm” n’existe plus dans le mappage du contrôleur, voir Mappage des annotations @ RequestMapping (“/customer.htm”) , il devrait devenir “client”.
<form:form method="POST" commandName="customer">
Cas similaires
J’ai vu pas mal de cas similaires se produire dans la classe validator ou SimpleFormController Pour le résoudre, assurez-vous que le nom du mappage est identique ou existant.
lien://tag/spring-mvc/[spring mvc]