Spring java.lang.IllegalStateException:bean name';configbean';可用作请求属性

Spring java.lang.IllegalStateException:bean name';configbean';可用作请求属性,spring,spring-mvc,modelattribute,Spring,Spring Mvc,Modelattribute,当尝试使用maven运行spring示例应用程序时,我遇到了提到的异常 这是我的节目 Firstpage1.jsp[出现在Webcontent中] <html> <head> <title>Finacle data retriever</title> </head> <body> <h2>Enter the configuration details</h2> <form:for

当尝试使用maven运行spring示例应用程序时,我遇到了提到的异常

这是我的节目

Firstpage1.jsp[出现在Webcontent中]

<html>
<head>
<title>Finacle data retriever</title>
</head>
<body>
    <h2>Enter the configuration details</h2>
    <form:form method="POST" action="/formexample/Configgen" commandName="configbean">
        <table>
            <tr>
                <td><form:label path="tnu">Total number of Users</form:label></td>
                <td><form:input path="tnu" /></td>
            </tr>
            <tr>
                <td><form:label path="cnu">Concurrent number of Users</form:label></td>
                <td><form:input path="cnu" /></td>
            </tr>
            <tr>
                <td><form:label path="kat">Keep Alive Timeout</form:label></td>
                <td><form:input path="kat" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="Submit" /></td>
            </tr>
        </table>
    </form:form>
</body>
</html>
ConfigurationController.java

package formexamplepack1;

public class configbean {


    private int tuc;
    private int cnu;
    private int kat;

    public int getTuc() {
        return tuc;
    }
    public void setTuc(int tuc) {
        this.tuc = tuc;
    }
    public int getCnu() {
        return cnu;
    }
    public void setCnu(int cnu) {
        this.cnu = cnu;
    }
    public int getKat() {
        return kat;
    }
    public void setKat(int kat) {
        this.kat = kat;
    }

}
package formexamplepack1;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;



@Controller
@RequestMapping(value = "/Configgen")
public class ConfigurationController {


     @RequestMapping(method=RequestMethod.GET)
       public String showform(ModelMap model) {
                configbean configbean=new configbean();
                model.addAttribute("configbean",configbean);
                return "Firstpage";
            }

    @RequestMapping(method=RequestMethod.POST)
    public String getdetails(@ModelAttribute("configbean")configbean configbean,ModelMap model,BindingResult bindingResult){
        model.addAttribute("tnu", configbean.getTuc());
        model.addAttribute("cnu", configbean.getCnu());
        model.addAttribute("kat",configbean.getKat());
        return "result";

    }




}
请帮助我解决以下异常。我把所有的答案都看完了,但还是弄不明白。使用Java1.8和SpringJARS最新版本[4.2.6]

tomcat-7.0.68

以下是例外

org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'configbean' available as request attribute
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:556)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:472)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



root cause 
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'configbean' available as request attribute
    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
    org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130)
    org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120)
    org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90)
    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005flabel_005f0(Firstpage1_jsp.java:216)
    org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005fform_005f0(Firstpage1_jsp.java:152)
    org.apache.jsp.Firstpage1_jsp._jspService(Firstpage1_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.jasper.jaspereException:java.lang.IllegalStateException:bean名称“configbean”的BindingResult和普通目标对象都不能作为请求属性使用
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:472)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javaservlet.http.HttpServlet.service(HttpServlet.java:790)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因
java.lang.IllegalStateException:bean名称“configbean”的BindingResult和普通目标对象都不能作为请求属性使用
org.springframework.web.servlet.support.BindStatus.(BindStatus.java:144)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130)
org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120)
org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005flabel_005f0(Firstpage1_jsp.java:216)
org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005fform_005f0(Firstpage1_jsp.java:152)
org.apache.jsp.Firstpage1_jsp._jsp服务(Firstpage1_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javaservlet.http.HttpServlet.service(HttpServlet.java:790)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javaservlet.http.HttpServlet.service(HttpServlet.java:790)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
试试:

  • 不带ModelAttribute注释
  • 直接在命令对象之后绑定结果
比如:

尝试:

  • 不带ModelAttribute注释
  • 直接在命令对象之后绑定结果
比如:


您正试图在result.jsp文件中使用
${congibean.tnc}
,但未将其作为模型属性传递。相反,你试图通过“tnu”、“cnu”和“kat”。 因此,它会给您一个jasper异常,因为编译器无法找到任何名为“configbean”的模型属性。
要解决此问题,请在getdetails()方法中仅传递“configBean”作为模型属性,或者将result.jsp文件更改为仅使用
“${tnc}”、“${cnu}”和“${kat}”

在result.jsp文件中使用
${congibean.tnc}
,但您没有将其作为模型属性传递。相反,你试图通过“tnu”、“cnu”和“kat”。 因此,它会给您一个jasper异常,因为编译器无法找到任何名为“configbean”的模型属性。
要解决此问题,请在getdetails()方法中仅传递“configBean”作为模型属性,或者将result.jsp文件更改为仅使用
“${tnc}”、“${cnu}”和“${kat}”

这是一种预感,但我觉得您的类名可能会在这里引起问题,因此请尝试将类名从
configbean
更改为
configbean
这是预感,但我觉得您的类名可能会在这里引起问题,因此请尝试将类名从
configbean
更改为
configbean
package formexamplepack1;

public class configbean {


    private int tuc;
    private int cnu;
    private int kat;

    public int getTuc() {
        return tuc;
    }
    public void setTuc(int tuc) {
        this.tuc = tuc;
    }
    public int getCnu() {
        return cnu;
    }
    public void setCnu(int cnu) {
        this.cnu = cnu;
    }
    public int getKat() {
        return kat;
    }
    public void setKat(int kat) {
        this.kat = kat;
    }

}
package formexamplepack1;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;



@Controller
@RequestMapping(value = "/Configgen")
public class ConfigurationController {


     @RequestMapping(method=RequestMethod.GET)
       public String showform(ModelMap model) {
                configbean configbean=new configbean();
                model.addAttribute("configbean",configbean);
                return "Firstpage";
            }

    @RequestMapping(method=RequestMethod.POST)
    public String getdetails(@ModelAttribute("configbean")configbean configbean,ModelMap model,BindingResult bindingResult){
        model.addAttribute("tnu", configbean.getTuc());
        model.addAttribute("cnu", configbean.getCnu());
        model.addAttribute("kat",configbean.getKat());
        return "result";

    }




}
org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'configbean' available as request attribute
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:556)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:472)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



root cause 
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'configbean' available as request attribute
    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
    org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130)
    org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120)
    org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90)
    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005flabel_005f0(Firstpage1_jsp.java:216)
    org.apache.jsp.Firstpage1_jsp._jspx_meth_form_005fform_005f0(Firstpage1_jsp.java:152)
    org.apache.jsp.Firstpage1_jsp._jspService(Firstpage1_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
@RequestMapping(method=RequestMethod.POST)
public String getdetails(configbean configbean, BindingResult bindingResult){
    model.addAttribute("tnu", configbean.getTuc());
    model.addAttribute("cnu", configbean.getCnu());
    model.addAttribute("kat",configbean.getKat());
    return "result";

}