Spring MVC, Ni BindingResult ni de la plaine de l'objet cible pour bean nom
Pour une raison que je n'arrive pas à résoudre ce problème, même après avoir regardé plusieurs exemples ici.
Je suis en train de traiter un formulaire à l'aide de Spring MVC 3, mais j'obtiens l'erreur suivante:
Neither BindingResult nor plain target object for bean name 'reverseString' available as request attribute
Je suis donc en sorte d'obtenir ce qui est le problème ici, mais je n'ai pas réussi à le résoudre. Voici la méthode dans mon
ReverseController classe qui s'étend SimpleFormController:
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
ReverseString revString = (ReverseString) command;
ModelAndView mav = new ModelAndView();
ModelMap map = new ModelMap();
map.addAttribute("reverseString", revString);
mav.addAllObjects(map);
return mav;
}
Mon app-servlet.xml définit le contrôleur comme suit:
<bean name="/reverse.app" class="ReverseController">
<property name="commandName" value="reverseString"></property>
<property name="commandClass" value="ReverseString" />
<property name="successView" value="reverseResult" />
<property name="formView" value="reverse" />
</bean>
C'est la forme, à mon sens inverse.jsp:
<form:form method="POST" modelAttribute="reverseString" action="handleForm">
<form:errors path="*" cssClass="errorblock" element="div" />
<table>
<tr>
<td>String to be reversed:</td>
<td><form:input path="stringToReverse" />
</td>
<td><form:errors path="stringToReverse" cssClass="error" />
</td>
</tr>
<tr>
<td colspan="3"><input type="submit" /></td>
</tr>
</table>
</form:form>
Et c'est ce qui est défini dans mon web.xml:
<web-app>
<display-name>Spring Reverse String</display-name>
<welcome-file-list>
<welcome-file>reverse.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>Dispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>*.app</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
Et enfin, c'est mon ReverseString objet:
public class ReverseString {
public String stringToReverse;
public String reversedString;
public ReverseString(String rawString) {
this.reversedString = reverseString(stringToReverse);
}
public String getStringToReverse() {
return stringToReverse;
}
public void setStringToReverse(String stringToReverse) {
this.stringToReverse = stringToReverse;
}
public String reverseString(String rawString) {
if(rawString == null || rawString.length() <= 1) return rawString;
return reverseString(rawString.substring(1)) + rawString.charAt(0);
}
}
Avez-vous mélangé Spring MVC 2.x et 3.x concepts? - s'il vous plaît post complet de Contrôleur de classe.
OriginalL'auteur mgerstner | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Dans votre arrière.fichier jsp, vous avez ajouté modelAttribute comme reverseString.
Ainsi, alors que, avant le chargement inverse.jsp, il va chercher pour votre ReverseString.java objet.
Vous avez juste besoin de les ajouter ReverseString.java objet de la demande portée de votre méthode de contrôleur de l'endroit où vous naviguez à l'utilisateur de s'inverser.jsp.
par exemple
OriginalL'auteur Naresh J
Que j'ai trouvé pour mon auto cette exception la plupart des cas, apparaît lorsque le chemin d'accès au contrôleur est faux. Ou d'une erreur dans la syntaxe. Très soigneusement vérifier si tous les liens dans jsp et les chemins d'accès sont à droite. Parce que même les " /" peut être la raison de l'exception.
OriginalL'auteur Devour
Essayez d'ajouter
@ModelAttribute("reverseString")
dans votre onSubmit des paramètres de la méthode.OriginalL'auteur Evgeni Dimitrov
Pour moi, cette erreur a été résolue en déclarant
dans le contrôleur. Et aussi sur les jsp, je me réfère aux attributs de modèle en mentionnant le nom de la classe:
OriginalL'auteur Shahriar