i trying create simple form using form
tag in spring mvc. there 1 field called uname
passing user name.
in whole program , using java based annotations , no xml files, getting annoying error , don't know how fix it.
severe: neither bindingresult nor plain target object bean name 'user' available request attribute java.lang.illegalstateexception: neither bindingresult nor plain target object bean name 'user' available 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.abstractdataboundformelementtag.getname(abstractdataboundformelementtag.java:154) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.autogenerateid(abstractdataboundformelementtag.java:141) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.resolveid(abstractdataboundformelementtag.java:132) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.writedefaultattributes(abstractdataboundformelementtag.java:116) @ org.springframework.web.servlet.tags.form.abstracthtmlelementtag.writedefaultattributes(abstracthtmlelementtag.java:422) @ org.springframework.web.servlet.tags.form.inputtag.writetagcontent(inputtag.java:142) @ org.springframework.web.servlet.tags.form.abstractformtag.dostarttaginternal(abstractformtag.java:84) @ org.springframework.web.servlet.tags.requestcontextawaretag.dostarttag(requestcontextawaretag.java:80) @ org.apache.jsp.home_jsp._jspx_meth_form_005finput_005f0(home_jsp.java:213) @ org.apache.jsp.home_jsp._jspx_meth_form_005fform_005f0(home_jsp.java:177) @ org.apache.jsp.home_jsp._jspservice(home_jsp.java:132) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:729) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:438) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:396) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:340) @ javax.servlet.http.httpservlet.service(httpservlet.java:729) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:292) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:207) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:240) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:207) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:212) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:106) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:141) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:79) @ org.apache.catalina.valves.abstractaccesslogvalve.invoke(abstractaccesslogvalve.java:616) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:88) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:522) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1095) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:672) @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.dorun(nioendpoint.java:1500) @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1456) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) @ java.lang.thread.run(thread.java:745) jun 07, 2016 1:56:33 org.apache.catalina.core.standardwrappervalve invoke severe: servlet.service() servlet [jsp] in context path [/first] threw exception [an exception occurred processing jsp page /home.jsp @ line 14 11: <body> 12: <form:form method="post" action="vv" commandname="user"> 13: name: 14: <form:input path="uname"/> 15: <input type="submit" value="login"/> 16: 17: </form:form> stacktrace:] root cause java.lang.illegalstateexception: neither bindingresult nor plain target object bean name 'user' available 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.abstractdataboundformelementtag.getname(abstractdataboundformelementtag.java:154) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.autogenerateid(abstractdataboundformelementtag.java:141) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.resolveid(abstractdataboundformelementtag.java:132) @ org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.writedefaultattributes(abstractdataboundformelementtag.java:116) @ org.springframework.web.servlet.tags.form.abstracthtmlelementtag.writedefaultattributes(abstracthtmlelementtag.java:422) @ org.springframework.web.servlet.tags.form.inputtag.writetagcontent(inputtag.java:142) @ org.springframework.web.servlet.tags.form.abstractformtag.dostarttaginternal(abstractformtag.java:84) @ org.springframework.web.servlet.tags.requestcontextawaretag.dostarttag(requestcontextawaretag.java:80) @ org.apache.jsp.home_jsp._jspx_meth_form_005finput_005f0(home_jsp.java:213) @ org.apache.jsp.home_jsp._jspx_meth_form_005fform_005f0(home_jsp.java:177) @ org.apache.jsp.home_jsp._jspservice(home_jsp.java:132) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:729) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:438) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:396) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:340) @ javax.servlet.http.httpservlet.service(httpservlet.java:729) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:292) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:207) @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:240) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:207) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:212) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:106) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:141) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:79) @ org.apache.catalina.valves.abstractaccesslogvalve.invoke(abstractaccesslogvalve.java:616) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:88) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:522) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1095) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:672) @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.dorun(nioendpoint.java:1500) @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1456) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) @ java.lang.thread.run(thread.java:745)
home.jsp
%@ page language="java" contenttype="text/html; charset=iso-8859-1" pageencoding="iso-8859-1"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>insert title here</title> </head> <body> <form:form method="post" action="vv" commandname="user"> name: <form:input path="uname"/> <input type="submit" value="login"/> </form:form> </body> </html>
controller
package one; 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("vv") public class mainc { @requestmapping(method=requestmethod.get) public string pp(modelmap m) { user u=new user(); m.addattribute("user",u); return "home"; } @requestmapping(method=requestmethod.post) public string pp1(@modelattribute("user") user user, bindingresult br) { if(user.getuname().length()!=0) return "success"; else return "failure"; } }
configuration
package one; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.componentscan; import org.springframework.context.annotation.configuration; import org.springframework.web.servlet.config.annotation.enablewebmvc; import org.springframework.web.servlet.view.internalresourceviewresolver; @configuration @enablewebmvc @componentscan(basepackages={"one"}) public class conf { @bean(name="viewresolver") public internalresourceviewresolver ii() { internalresourceviewresolver i=new internalresourceviewresolver(); i.setprefix("/"); i.setsuffix(".jsp"); return i; } }
initialiser
package one; import javax.servlet.servletcontext; import javax.servlet.servletexception; import javax.servlet.servletregistration; import org.springframework.web.webapplicationinitializer; import org.springframework.web.context.contextloaderlistener; import org.springframework.web.context.support.annotationconfigwebapplicationcontext; import org.springframework.web.servlet.dispatcherservlet; public class webinit implements webapplicationinitializer { @override public void onstartup(servletcontext arg0) throws servletexception { // todo auto-generated method stub annotationconfigwebapplicationcontext cxt=new annotationconfigwebapplicationcontext(); cxt.register(conf.class); arg0.addlistener(new contextloaderlistener(cxt)); servletregistration.dynamic srv=arg0.addservlet("helloweb", new dispatcherservlet(cxt)); srv.setloadonstartup(1); srv.addmapping("/"); } }
user
package one; public class user { private string uname; public void setuname(string uname) { this.uname = uname; } public string getuname() { return uname; } }
the issue method providing blank bean object never getting executed. that's why error: plain target object bean name 'user' not available coming.
solution
add new jsp page -index.jsp home page application , in add 1 line in <body> <a href=home>home page</a> , in controller class... @requestmapping("/home") public string pp(model m) { user u=new user(); m.addatribute("command",u); return "home"; } solve issue.