Spring MVC既不是BindingResult,也不是bean名称的普通目标对象 [英] Spring MVC Neither BindingResult nor plain target object for bean name

查看:101
本文介绍了Spring MVC既不是BindingResult,也不是bean名称的普通目标对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于某些原因,我似乎无法解决这个问题,即使在此处查看了多个示例。

For some reason I cannot seem to fix this issue, even after looking at multiple examples on here.

我正在尝试使用Spring 3 MVC处理表单,但是我收到以下错误:

I am trying to handle a form using Spring 3 MVC, but I am getting the following error:

 Neither BindingResult nor plain target object for bean name 'reverseString' available as request attribute

所以我在这里得到了什么问题,但我没有解决它。这是我的

So I am kind of getting what is the problem here, but I failed to solve it. Here is the method in my

ReverseController类中的方法,它扩展了SimpleFormController:

ReverseController class which extends 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;
}

我的app-servlet.xml定义控制器如下:

My app-servlet.xml defines the controller as follows:

<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>

这是我的reverse.jsp中的表格:

This is the form in my reverse.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>

这就是我的web.xml中定义的内容:

And this is what is being defined in my 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>

最后,这是我的ReverseString对象:

And finally, this is my ReverseString object:

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);
}

}

推荐答案

在reverse.jsp文件中,您将modelAttribute添加为reverseString。
所以在加载reverse.jsp之前,它会查找你的ReverseString.java对象。

In your reverse.jsp file, you added modelAttribute as reverseString. So while before loading reverse.jsp, it will look for your ReverseString.java object.

你只需要在请求范围内添加ReverseString.java对象。你的控制器方法,你将用户导航到reverse.jsp。

You just need to add ReverseString.java object in request scope of your controller method from where you navigate user to reverse.jsp.

例如

@RequestMapping(value = "/getReverseStringForm")
  public String cmLogin(Model model) {
    model.addAttribute(new ReverseString());
    return "reverse";
  }

这篇关于Spring MVC既不是BindingResult,也不是bean名称的普通目标对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆