2016-06-23 48 views
1

當嘗試使用maven運行spring示例應用程序時,我得到了上述異常。java.lang.IllegalStateException:BindingResult和bean名稱'configbean'都沒有可用作請求屬性的純目標對象

這是我的節目

Firstpage1.jsp [在網絡內容本]

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

result.jsp中 [網絡內容/ WEB-INF/JSP]

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<html> 
<head> 
<title>Result page</title> 
</head> 
<body> 
<h2> Result page information</h2> 
<table> 
<tr> 
    <td>Total Number of users</td> 
    <td>${congibean.tnc}</td> 
</tr> 
<tr> 
    <td>Concurrent Number of users</td> 
    <td>${congibean.cnu}</td> 
</tr> 
<tr> 
    <td>Keep alive timeout</td> 
    <td>${congibean.kat}</td> 
</tr> 
</table> 
</body> 
</html> 


**spring dependencies are present in maven dependencies.** 

Web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <jsp-config> 
     <taglib> 
      <taglib-uri>/WEB-INF/spring-form.tld</taglib-uri> 
      <taglib-location>spring-form.tld</taglib-location> 
     </taglib> 
    </jsp-config> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/formex-servlet.xml</param-value> 
    </context-param> 
    <welcome-file-list> 
     <welcome-file>Firstpage1.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
     <servlet-name>formex</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>formex</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 


</web-app> 

FORMEX-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> 

    <context:component-scan base-package="formexamplepack1"></context:component-scan> 

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp"/> 
    <property name="suffix" value=".jsp"/> 
    </bean> 
</beans> 

formexamplepack1 - 包

configbean.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; 
    } 

} 

ConfigurationController.java

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

    } 




} 

幫助我解決以下例外。我已經經歷了所有的答案,但無法弄清楚。使用Java 1.8和春天罐子最新[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) 
+0

它是一種預感,但我覺得你的類名可能會導致此問題,因此嘗試從'configbean'改變類名'Configbean' – Mudassar

回答

0

嘗試:

  • 沒有的ModelAttribute註釋
  • 綁定結果直接在命令對象後面

,如:

@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"; 

} 
相關問題