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]