java - How to show the hibernate binding validation exception in part of JSP page i.e in one particular div -
while submitting form checking binding errors, since name , short name must non-empty defined in model. while doing giving errors. not sure why.?? can me this.?
company-definition.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <%@ taglib prefix="tg" tagdir="/web-inf/tags"%> <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> <jsp:usebean id="pagedlistholder" scope="request" type="org.springframework.beans.support.pagedlistholder" /> <main class="container padcontnr"> <div class="row"> <div class="col-md-12"> <h1>company definition</h1> </div> </div> <div class="bg-ltgreen padding-10 margin-t-10 position-re disnone" id="adddetails"> <div class="text-r astric">fields marked asterisk <span class="red">(*)</span> required.</div> <form:form class="form-horizontal" action="company" modelattribute="company" method="post" onsubmit=""> <form:input type="hidden" id="id" path="id" name="id"/> <form:input type="hidden" id="actiontype" path="actiontype" name="actiontype"/> <div class="row"> <div class="col-md-4 col-sm-4 col-xs-12"> <div class="form-group"> <label class="label-bg col-xs-12">name <span class="red">*</span></label> <div class="col-md-12"> <form:input type="text" id="comname" path="name" name="name" class="form-control" placeholder="unique name"/> <form:errors path="name" cssstyle="color: #ff0000;"></form:errors> </div> </div> <div class="form-group"> <label class="label-bg col-xs-12">short name <span class="red">*</span></label> <div class="col-xs-12"> <form:input type="text" id="shortname" path="shortname" name="shortname" class="form-control" placeholder="hcl"/> <form:errors path="shortname" cssstyle="color: #ff0000;"></form:errors> </div> </div> </div> <div class="col-md-4 col-sm-4 col-xs-12"> <div class="form-group"> <label class="label-bg col-xs-12">type <span class="red">*</span></label> <div class="col-xs-12 f-size-16"> <form:select id="companytype" multiple="true" class="form-control" path="companytype"> <form:options items="${companytypelist}" itemvalue="dropdownvalue" itemlabel="dropdownvalue"/> </form:select> </div> </div> <div class="form-group" id="dlvry"> <label class="label-bg col-xs-12">delivery unit <span class="red">*</span></label> <div class="col-xs-12"> <form:select id="deliveryunit" path="deliveryunit" class="form-control"> <form:options items="${deliveryunitlist}" itemvalue="id" itemlabel="dropdownvalue" /> </form:select> </div> </div> </div> <div class="col-md-4 col-sm-4 col-xs-12"> <div class="form-group"> <label class="label-bg col-xs-12">status <span class="red">*</span></label> <div class="col-xs-12"> <form:select id="status" path="status" class="form-control" > <form:options items="${statuslist}" itemvalue="id" itemlabel="dropdownvalue" /> </form:select> </div> </div> </div> </div> <div class="row"> <div class="col-xs-12 margin-t-10"> <button type="submit" class="btn btn-primary btnsubmit" name = "savecompany" >save</button> <button type="button" class="btn btn-default btncancel" name = "company" >cancel</button> </div> </div> </form:form> </div> <div id="appconfig"> <div class="row margin-t-10"> <div class="col-md-8 col-sm-8 col-xs-12"> <div class="f-size-16 display-inline-block float-l margin-r-20"> items <select class="small border-radius2 margin-l-10"> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select> </div> <c:url value="/company" var="pagedlink"> <c:param name="action" value="list" /> <c:param name="p" value="~" /> <c:if test="${checkactionmode=='true'}"> <c:param name="checkactionmode" value="true" /> </c:if> </c:url> <tg:paging pagedlistholder="${pagedlistholder}" pagedlink="${pagedlink}" /> </div> <div class="col-md-4 col-sm-4 col-xs-12 flt-r padding-t-10"> <a href="javascript:;" id="addbtn" class="sprite add"></a> <a href="javascript:;" id="editbtn" class="sprite edit"></a> </div> </div> <!-- table details --> <div class="table-responsive margin-t-10"> <table width="100%" border="0" class="table table-striped 4 trclick"> <thead> <tr> <th>name</th> <th>type</th> <th>delivery unit</th> <th>status</th> </tr> </thead> <tbody> <c:foreach var="company" items="${pagedlistholder.pagelist}" varstatus="status1"> <tr> <td>${company.name}</td> <td>${company.companytypename}</td> <td>${company.deliveryunit}</td> <%-- <td>${company.shortname}</td> --%> <c:choose> <c:when test="${company.status ==1}"> <td class="active">active</td> </c:when> <c:when test="${company.status ==0}"> <td class="inactive">in-active</td> </c:when> </c:choose> </tr> </c:foreach> </tbody> </table> </div> </div> </main> <%-- <div class="row margin-t-20"> <div class="col-md-8 col-sm-8 col-xs-12"> <div class="f-size-16 display-inline-block float-l margin-r-20"> items <select class="small border-radius2 margin-l-10"> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select> </div> <c:url value="/company" var="pagedlink"> <c:param name="action" value="list" /> <c:param name="p" value="~" /> <c:if test="${checkactionmode=='true'}"> <c:param name="checkactionmode" value="true" /> </c:if> </c:url> <tg:paging pagedlistholder="${pagedlistholder}" pagedlink="${pagedlink}" /> </div> <div class="col-md-4 col-sm-4 col-xs-12 flt-r padding-t-10"> <!-- <a href="javascipt:;" id="addbtn_suchi1" class="sprite add"></a> --> <a href="javascript:;" id="addbtn" class="sprite add"></a> <a href="javascipt:;" id="editbtn" class="sprite edit"></a> </div> </div> <!-- table details --> <div class="table-responsive margin-t-20" id="view-companydata"> <table width="100%" border="0" class="table table-striped five" id="table"> <thead> <tr> <th>name</th> <th>type</th> <th>delivery unit</th> <th>short name</th> <th>status</th> </tr> </thead> <tbody> <c:foreach var="company" items="${pagedlistholder.pagelist}" varstatus="status"> <tr> <td>${company.name}</td> <td>${company.companytypename}</td> <td>${company.deliveryunit}</td> <td>${company.shortname}</td> <td><c:choose> <c:when test="${company.status ==1}"> active </c:when> <c:when test="${company.status ==0}"> inactive </c:when> </c:choose></td> <td> </tr> </c:foreach> </tbody> </table> </div> </body> </html> </main> --%>
companycontroller.java
@requestmapping(value = "/company", params = "savecompany", method = requestmethod.post) public modelandview savecompany(@valid @modelattribute @validated company company, bindingresult result, httpservletrequest request) throws appexception { if (result.haserrors()) { modelandview model = new modelandview("company"); return model; } httpsession session = request.getsession(); modelandview model = new modelandview("company"); globalexceptionhandler.initexceptionhandlerrequest(request,"company", model); initexceptionviewmodellist(model,company); string companyname = company.getname(); string action = company.getactiontype(); boolean checkcomname = companydao.checkcompanyname(company.getname()); boolean checkcomshortname = companydao.checkcompanyshortname(company.getshortname()); if(action == null) { if (checkcomname || checkcomshortname) { model = getdropdownlist(model); model.setviewname("addcompany"); if (checkcomname && checkcomshortname) { model.addobject("namealreadyexist", "name exists"); model.addobject("aliasalreadyexist", "alias name exists"); model.addobject("company", company); return model; } if (checkcomname) { model.addobject("namealreadyexist", "name exists"); model.addobject("company", company); } if (checkcomshortname) { model.addobject("aliasalreadyexist", "alias name exists"); model.addobject("company", company); } return model; } } string generatedcode; try { /* * generatedcode = utilities.getnextgeneratedcode(company.getid(), * "company", "com"); company.setcompany_code(generatedcode); */ } catch (exception e) { // todo auto-generated catch block throw new appexception(iexception.key_generated_code); } // list<company> listcompany = companydao.saveorupdate(company); pagedlistholder<company> pagedlistholder = new pagedlistholder<company>(listcompany); int page = servletrequestutils.getintparameter(request, "p", 0); pagedlistholder.setpage(page); int pagesize=setpagesize(company,session); pagedlistholder.setpagesize(pagesize); model.addobject("pagedlistholder", pagedlistholder); model.addobject("company", company); return model; }
company- model
package com.hcl.ne.model; import java.util.date; import org.hibernate.validator.constraints.notempty; public class company { private int id; private string imagename; private string company_code; private string company_prefix_req; int pagesize; @notempty(message="field mandatory short name") private string shortname; @notempty(message="field mandatory name") private string name; private string[] companytype; private string companytypename; private string deliveryunit; private string associatecompanytype; private string companytypes; private int userid; private int status; private string actiontype; private date lastupdateddate; private date createdate; private string lastupdatedby; private string createdby; public string getactiontype() { return actiontype; } public void setactiontype(string actiontype) { this.actiontype = actiontype; } public string getshortname() { return shortname; } public void setshortname(string shortname) { this.shortname = shortname; } public string getdeliveryunit() { return deliveryunit; } public void setdeliveryunit(string deliveryunit) { this.deliveryunit = deliveryunit; } public string getassociatecompanytype() { return associatecompanytype; } public void setassociatecompanytype(string associatecompanytype) { this.associatecompanytype = associatecompanytype; } public string getcompanytypename() { return companytypename; } public void setcompanytypename(string companytypename) { this.companytypename = companytypename; } public int getpagesize() { return pagesize; } public void setpagesize(int pagesize) { this.pagesize = pagesize; } public string getcompany_prefix_req() { return company_prefix_req; } public void setcompany_prefix_req(string company_prefix_req) { this.company_prefix_req = company_prefix_req; } public string getcompany_code() { return company_code; } public void setcompany_code(string company_code) { this.company_code = company_code; } public int getstatus() { return status; } public void setstatus(int status) { this.status = status; } public string[] getcompanytype() { return companytype; } public void setcompanytype(string[] companytype) { this.companytype = companytype; } public company() { } public int getid() { return id; } public void setid(int id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } public int getuserid() { return userid; } public void setuserid(int userid) { this.userid = userid; } public string getcompanytypes() { return companytypes; } public void setcompanytypes(string companytypes) { this.companytypes = companytypes; } public string getimagename() { return imagename; } public void setimagename(string imagename) { this.imagename = imagename; } public date getlastupdateddate() { return lastupdateddate; } public void setlastupdateddate(date lastupdateddate) { this.lastupdateddate = lastupdateddate; } public date getcreatedate() { return createdate; } public void setcreatedate(date createdate) { this.createdate = createdate; } public string getlastupdatedby() { return lastupdatedby; } public void setlastupdatedby(string lastupdatedby) { this.lastupdatedby = lastupdatedby; } public string getcreatedby() { return createdby; } public void setcreatedby(string createdby) { this.createdby = createdby; } }
tiles.xml
<?xml version="1.0" encoding="utf-8" ?> <!doctype tiles-definitions public "-//apache software foundation//dtd tiles configuration 3.0//en" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> <tiles-definitions> <!-- base definition --> <definition name="base-definition" template="/web-inf/views/layout/foundation-baselayout.jsp"> <put-attribute name="title" value="" /> <put-attribute name="header" value="/web-inf/views/layout/header.jsp" /> <put-attribute name="foundation-header" value="" /> <put-attribute name="body" value="" /> <put-attribute name="footer" value="/web-inf/views/layout/footer.jsp" /> </definition> <!-- company page --> <definition name="company" extends="base-definition"> <put-attribute name="title" value="company" /> <put-attribute name="foundation-header" value="/web-inf /views/foundation/foundation-header.jsp" /> <put-attribute name="body" value="/web-inf/views/foundation/company-definition.jsp" /> </definition> </tiles-definitions >
here error
org.springframework.web.util.nestedservletexception: request processing failed; nested exception org.apache.tiles.request.render.cannotrenderexception: jspexception including path '/web-inf/views/foundation/company-definition.jsp'. @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:982) @ org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:872) @ javax.servlet.http.httpservlet.service(httpservlet.java:707) @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:846) @ javax.servlet.http.httpservlet.service(httpservlet.java:790) @ com.ibm.ws.webcontainer.servlet.servletwrapper.service(servletwrapper.java:1287) @ [internal classes] @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:317) @ org.springframework.security.web.access.intercept.filtersecurityinterceptor.invoke(filtersecurityinterceptor.java:127) @ org.springframework.security.web.access.intercept.filtersecurityinterceptor.dofilter(filtersecurityinterceptor.java:91) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.access.exceptiontranslationfilter.dofilter(exceptiontranslationfilter.java:115) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.session.sessionmanagementfilter.dofilter(sessionmanagementfilter.java:137) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.authentication.anonymousauthenticationfilter.dofilter(anonymousauthenticationfilter.java:111) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.servletapi.securitycontextholderawarerequestfilter.dofilter(securitycontextholderawarerequestfilter.java:169) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.savedrequest.requestcacheawarefilter.dofilter(requestcacheawarefilter.java:63) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.authentication.abstractauthenticationprocessingfilter.dofilter(abstractauthenticationprocessingfilter.java:200) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.authentication.logout.logoutfilter.dofilter(logoutfilter.java:121) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.csrf.csrffilter.dofilterinternal(csrffilter.java:124) @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.header.headerwriterfilter.dofilterinternal(headerwriterfilter.java:66) @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.context.securitycontextpersistencefilter.dofilter(securitycontextpersistencefilter.java:105) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.context.request.async.webasyncmanagerintegrationfilter.dofilterinternal(webasyncmanagerintegrationfilter.java:56) @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) @ org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:331) @ org.springframework.security.web.filterchainproxy.dofilterinternal(filterchainproxy.java:214) @ org.springframework.security.web.filterchainproxy.dofilter(filterchainproxy.java:177) @ org.springframework.web.filter.delegatingfilterproxy.invokedelegate(delegatingfilterproxy.java:346) @ org.springframework.web.filter.delegatingfilterproxy.dofilter(delegatingfilterproxy.java:262) @ com.ibm.ws.webcontainer.filter.filterinstancewrapper.dofilter(filterinstancewrapper.java:207) @ [internal classes] caused by: org.apache.tiles.request.render.cannotrenderexception: jspexception including path '/web-inf/views/foundation/company-definition.jsp'. @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:399) @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:238) @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:221) @ org.apache.tiles.renderer.definitionrenderer.render(definitionrenderer.java:59) @ org.springframework.web.servlet.view.tiles3.tilesview.rendermergedoutputmodel(tilesview.java:132) @ org.springframework.web.servlet.view.abstractview.render(abstractview.java:303) @ org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1257) @ org.springframework.web.servlet.dispatcherservlet.processdispatchresult(dispatcherservlet.java:1037) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:980) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:897) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:970) ... 41 more caused by: java.io.ioexception: jspexception including path '/web-inf/views/foundation/company-definition.jsp'. @ org.apache.tiles.request.servlet.servletutil.wrapservletexception(servletutil.java:61) @ org.apache.tiles.request.jsp.jsprequest.doinclude(jsprequest.java:125) @ org.apache.tiles.request.abstractviewrequest.dispatch(abstractviewrequest.java:47) @ org.apache.tiles.request.render.dispatchrenderer.render(dispatchrenderer.java:47) @ org.apache.tiles.request.render.chaineddelegaterenderer.render(chaineddelegaterenderer.java:68) @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:259) @ org.apache.tiles.template.insertattributemodel.renderattribute(insertattributemodel.java:188) @ org.apache.tiles.template.insertattributemodel.execute(insertattributemodel.java:132) @ org.apache.tiles.jsp.taglib.insertattributetag.dotag(insertattributetag.java:299) @ com.ibm._jsp._foundation_2d_baselayout._jspx_meth_tiles_insertattribute_2(_foundation_2d_baselayout.java:402) @ com.ibm._jsp._foundation_2d_baselayout._jspservice(_foundation_2d_baselayout.java:160) @ com.ibm.ws.jsp.runtime.httpjspbase.service(httpjspbase.java:101) @ [internal classes] @ org.apache.tiles.request.servlet.servletrequest.forward(servletrequest.java:265) @ org.apache.tiles.request.servlet.servletrequest.doforward(servletrequest.java:228) @ org.apache.tiles.request.abstractclientrequest.dispatch(abstractclientrequest.java:57) @ org.apache.tiles.request.render.dispatchrenderer.render(dispatchrenderer.java:47) @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:259) @ org.apache.tiles.impl.basictilescontainer.render(basictilescontainer.java:397) ... 51 more caused by: java.lang.instantiationexception: bean pagedlistholder not found within scope @ com.ibm._jsp._company_2d_definition._jspservice(_company_2d_definition.java:142) @ com.ibm.ws.jsp.runtime.httpjspbase.service(httpjspbase.java:101) @ [internal classes] @ org.apache.tiles.request.jsp.jsprequest.doinclude(jsprequest.java:123)
see this solution. think should change type
attribute class
in <jsp:usebean id="pagedlistholder" scope="request" type="org.springframework.beans.support.pagedlistholder" />
in company-definition.jsp
.
Comments
Post a Comment