java - Neither BindingResult nor plain target object for bean name 'tabel' HTTP Status 500 -
in case web server returns http status 500, see full stack below.
error occurs in method editworker when method returns view
@requestmapping(value=("/worker/edit/{workerid}"), method = requestmethod.get) public string editworker(@pathvariable("workerid") long workerid, model model) { worker worker = workerservice.getworkerbyid(workerid); model.addattribute(worker); return "db_editor"; //error occurs here } if not use spring tags when working 2nd form (.. modelattribute="tabel" ..), there no error.
tell me please, what's wrong?
jsp file:
<%@ page contenttype="text/html; charset=utf-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="s" uri="http://www.springframework.org/tags" %> <div id="editor"> <div id="f_ed"> <sf:form method="post" action="/db_editor/worker/add" modelattribute="worker"> <sf:hidden path="id"/> <fieldset> <table> <tr> <td><sf:label path="fam">first name</sf:label></td> <td><sf:input path="fam" size="30"/><br/> <sf:errors path="fam" cssclass="error" /> </td> <td>Табель</td> </tr> <tr> <td><sf:label path="imj">last name</sf:label></td> <td><sf:input path="imj" size="30"/><br/> <sf:errors path="imj" cssclass="error" /> </td> </tr> <tr> <td><sf:label path="otch">middle name</sf:label></td> <td><sf:input path="otch" size="30"/><br/> <sf:errors path="otch" cssclass="error" /> </td> </tr> <tr> <td></td> <td><input name="commit" type="submit" value="commit" /> </td> </tr> </table> </fieldset> </sf:form> </div> <div id="tab_ed"> <sf:form method="post" action="/db_editor/tabel/add" modelattribute="tabel"> <sf:input path="d" type="date" /> <sf:input path="d_type" size="2"/> <input name="commit" type="submit" value="add"> </sf:form> </div> <c:if test="${!empty workerlist}"> <div id = "r_ed"> <table> <tr> <th>name</th> <th>bd</th> </tr> <c:foreach var="worker" items="${workerlist}"> <s:url value="db_editor/worker/edit/${worker.id}" var="edit_url" /> <tr> <td>${worker.fam}</td> <td>${worker.imj}</td> <td>${worker.otch}</td> <td><fmt:formatdate value="${worker.dbirth}" pattern="dd.mm.yyyy" /> </td> <td><a href="${edit_url}">edit</a></td> <td><a href="db_editor/worker/delete/${worker.id}">delete</a></td> </tr> </c:foreach> </table> </div> </c:if> </div> controller:
import .. @controller @requestmapping("/db_editor") public class dbeditorcontroller_test { private workerservice workerservice; private tabelservice tabelservice; @inject public dbeditorcontroller_test(workerservice workerservice, tabelservice tabelservice) { this.workerservice = workerservice; this.tabelservice = tabelservice; } @requestmapping(method = requestmethod.get) public string getworkers(model model) { model.addattribute("worker", new worker()); model.addattribute("tabel", new tabel()); model.addattribute("workerlist", this.workerservice.listworker()); return "db_editor"; } @requestmapping(value = "/worker/add", method = requestmethod.post) public string addworkerfromform(worker worker) { workerservice.addworker(worker); return "redirect:/db_editor"; } @requestmapping("/worker/delete/{workerid}") public string delworker(@pathvariable("workerid") long workerid) { workerservice.deleteworker(workerid); return "redirect:/db_editor"; } @requestmapping(value=("/worker/edit/{workerid}"), method = requestmethod.get) public string editworker(@pathvariable("workerid") long workerid, model model) { worker worker = workerservice.getworkerbyid(workerid); model.addattribute(worker); return "db_editor"; } @requestmapping(value = "/tabel/add", method = requestmethod.post) public string addonedayfortabel (tabel tabel) { tabel.setworker( workerservice.getworkerbyid( 2l ) ); tabelservice.addtabel( tabel ); return "redirect:/db_editor"; } } model:
worker.java
@entity @table(name="workers") public class worker { @id @column(name = "id") @generatedvalue private long id; @column(name = "fam") private string fam; @column(name = "imj") private string imj; @column(name = "otch") private string otch; @column(name = "dbirth") private date dbirth; /*getters , setters*/ } tabel.java
@entity @table(name="tabel") public class tabel { @id @column(name = "id") @generatedvalue private long id; @column(name = "d") private date d; @column(name = "d_type") private string d_type; @manytoone @joincolumn(name="worker_id") private worker worker; /*getters , setters*/ } full stacktrace:
http status 500 - request processing failed; nested exception org.apache.tiles.impl.cannotrenderexception: servletexception including path '/web-inf/views/main_template.jsp'. type exception report message request processing failed; nested exception org.apache.tiles.impl.cannotrenderexception: servletexception including path '/web-inf/views/main_template.jsp'. description server encountered internal error prevented fulfilling request. exception org.springframework.web.util.nestedservletexception: request processing failed; nested exception org.apache.tiles.impl.cannotrenderexception: servletexception including path '/web-inf/views/main_template.jsp'. org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:656) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76) root cause org.apache.tiles.impl.cannotrenderexception: servletexception including path '/web-inf/views/main_template.jsp'. org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:680) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:633) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:322) org.springframework.web.servlet.view.tiles2.tilesview.rendermergedoutputmodel(tilesview.java:124) org.springframework.web.servlet.view.abstractview.render(abstractview.java:250) org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1047) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:817) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76) root cause org.apache.tiles.util.tilesioexception: servletexception including path '/web-inf/views/main_template.jsp'. org.apache.tiles.servlet.context.servletutil.wrapservletexception(servletutil.java:232) org.apache.tiles.servlet.context.servlettilesrequestcontext.forward(servlettilesrequestcontext.java:243) org.apache.tiles.servlet.context.servlettilesrequestcontext.dispatch(servlettilesrequestcontext.java:222) org.apache.tiles.renderer.impl.templateattributerenderer.write(templateattributerenderer.java:44) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:678) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:633) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:322) org.springframework.web.servlet.view.tiles2.tilesview.rendermergedoutputmodel(tilesview.java:124) org.springframework.web.servlet.view.abstractview.render(abstractview.java:250) org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1047) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:817) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76) root cause javax.servlet.servletexception: org.apache.tiles.jsp.taglib.tilesjspexception: io error executing tag: jspexception including path '/web-inf/views/db_editor.jsp'. org.apache.jasper.runtime.pagecontextimpl.dohandlepageexception(pagecontextimpl.java:906) org.apache.jasper.runtime.pagecontextimpl.handlepageexception(pagecontextimpl.java:838) org.apache.jsp.web_002dinf.views.main_005ftemplate_jsp._jspservice(main_005ftemplate_jsp.java:223) 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:443) org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:385) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:329) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.apache.tiles.servlet.context.servlettilesrequestcontext.forward(servlettilesrequestcontext.java:241) org.apache.tiles.servlet.context.servlettilesrequestcontext.dispatch(servlettilesrequestcontext.java:222) org.apache.tiles.renderer.impl.templateattributerenderer.write(templateattributerenderer.java:44) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:678) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:633) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:322) org.springframework.web.servlet.view.tiles2.tilesview.rendermergedoutputmodel(tilesview.java:124) org.springframework.web.servlet.view.abstractview.render(abstractview.java:250) org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1047) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:817) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76) root cause org.apache.tiles.util.tilesioexception: jspexception including path '/web-inf/views/db_editor.jsp'. org.apache.tiles.servlet.context.servletutil.wrapservletexception(servletutil.java:232) org.apache.tiles.jsp.context.jsptilesrequestcontext.include(jsptilesrequestcontext.java:105) org.apache.tiles.jsp.context.jsptilesrequestcontext.dispatch(jsptilesrequestcontext.java:96) org.apache.tiles.renderer.impl.untypedattributerenderer.write(untypedattributerenderer.java:61) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:337) org.apache.tiles.jsp.taglib.insertattributetag.render(insertattributetag.java:234) org.apache.tiles.jsp.taglib.insertattributetag.render(insertattributetag.java:211) org.apache.tiles.jsp.taglib.rendertag.doendtag(rendertag.java:220) org.apache.jsp.web_002dinf.views.main_005ftemplate_jsp._jspx_meth_t_005finsertattribute_005f0(main_005ftemplate_jsp.java:271) org.apache.jsp.web_002dinf.views.main_005ftemplate_jsp._jspservice(main_005ftemplate_jsp.java:159) 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:443) org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:385) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:329) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.apache.tiles.servlet.context.servlettilesrequestcontext.forward(servlettilesrequestcontext.java:241) org.apache.tiles.servlet.context.servlettilesrequestcontext.dispatch(servlettilesrequestcontext.java:222) org.apache.tiles.renderer.impl.templateattributerenderer.write(templateattributerenderer.java:44) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:678) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:633) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:322) org.springframework.web.servlet.view.tiles2.tilesview.rendermergedoutputmodel(tilesview.java:124) org.springframework.web.servlet.view.abstractview.render(abstractview.java:250) org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1047) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:817) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76) root cause java.lang.illegalstateexception: neither bindingresult nor plain target object bean name 'tabel' available request attribute org.springframework.web.servlet.support.bindstatus.<init>(bindstatus.java:141) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.getbindstatus(abstractdataboundformelementtag.java:174) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.getpropertypath(abstractdataboundformelementtag.java:194) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.getname(abstractdataboundformelementtag.java:160) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.autogenerateid(abstractdataboundformelementtag.java:147) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.resolveid(abstractdataboundformelementtag.java:138) org.springframework.web.servlet.tags.form.abstractdataboundformelementtag.writedefaultattributes(abstractdataboundformelementtag.java:122) org.springframework.web.servlet.tags.form.abstracthtmlelementtag.writedefaultattributes(abstracthtmlelementtag.java:408) org.springframework.web.servlet.tags.form.inputtag.writetagcontent(inputtag.java:140) org.springframework.web.servlet.tags.form.abstractformtag.dostarttaginternal(abstractformtag.java:102) org.springframework.web.servlet.tags.requestcontextawaretag.dostarttag(requestcontextawaretag.java:79) org.apache.jsp.web_002dinf.views.db_005feditor_jsp._jspx_meth_sf_005finput_005f3(db_005feditor_jsp.java:630) org.apache.jsp.web_002dinf.views.db_005feditor_jsp._jspx_meth_sf_005fform_005f1(db_005feditor_jsp.java:587) org.apache.jsp.web_002dinf.views.db_005feditor_jsp._jspservice(db_005feditor_jsp.java:317) 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:443) org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:385) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:329) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.jasper.runtime.jspruntimelibrary.include(jspruntimelibrary.java:945) org.apache.jasper.runtime.pagecontextimpl.doinclude(pagecontextimpl.java:679) org.apache.jasper.runtime.pagecontextimpl.include(pagecontextimpl.java:673) org.apache.tiles.jsp.context.jsptilesrequestcontext.include(jsptilesrequestcontext.java:103) org.apache.tiles.jsp.context.jsptilesrequestcontext.dispatch(jsptilesrequestcontext.java:96) org.apache.tiles.renderer.impl.untypedattributerenderer.write(untypedattributerenderer.java:61) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:337) org.apache.tiles.jsp.taglib.insertattributetag.render(insertattributetag.java:234) org.apache.tiles.jsp.taglib.insertattributetag.render(insertattributetag.java:211) org.apache.tiles.jsp.taglib.rendertag.doendtag(rendertag.java:220) org.apache.jsp.web_002dinf.views.main_005ftemplate_jsp._jspx_meth_t_005finsertattribute_005f0(main_005ftemplate_jsp.java:271) org.apache.jsp.web_002dinf.views.main_005ftemplate_jsp._jspservice(main_005ftemplate_jsp.java:159) 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:443) org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:385) org.apache.jasper.servlet.jspservlet.service(jspservlet.java:329) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.apache.tiles.servlet.context.servlettilesrequestcontext.forward(servlettilesrequestcontext.java:241) org.apache.tiles.servlet.context.servlettilesrequestcontext.dispatch(servlettilesrequestcontext.java:222) org.apache.tiles.renderer.impl.templateattributerenderer.write(templateattributerenderer.java:44) org.apache.tiles.renderer.impl.abstractbaseattributerenderer.render(abstractbaseattributerenderer.java:103) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:659) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:678) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:633) org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:322) org.springframework.web.servlet.view.tiles2.tilesview.rendermergedoutputmodel(tilesview.java:124) org.springframework.web.servlet.view.abstractview.render(abstractview.java:250) org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1047) org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:817) org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719) org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644) org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:549) javax.servlet.http.httpservlet.service(httpservlet.java:622) javax.servlet.http.httpservlet.service(httpservlet.java:729) org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:53) org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88) org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76)
the edit method @ controller - editworker - not adding tabel attribute model. of them doing redirecting same view. need add model property @ methods, same way doing @ getworkers.
however advice should write methods annotated @modelattribute add properties default, going part of model always. if of request mapping method add them going override default ones.
@modelattribute ( "worker" ) public worker setworkertomodel( ) { return new worker(); } @modelattribute ( "tabel" ) public tabel settabeltomodel( ) { return new tabel(); } then can remove below lines getworkers method.
model.addattribute("worker", new worker()); model.addattribute("tabel", new tabel());
Comments
Post a Comment