While submitting the form it is checking for any binding errors, since name and short name must be non-empty as defined in model. But while doing so it is giving errors. not sure why.?? Can anybody help me with 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 with an asterisk <span class="red">(*)</span> are 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 four 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 already exists");
model.addObject("aliasAlreadyExist", "Alias Name already exists");
model.addObject("company", company);
return model;
}
if (checkComName) {
model.addObject("nameAlreadyExist", "Name already exists");
model.addObject("company", company);
}
if (checkComShortName) {
model.addObject("aliasAlreadyExist", "Alias Name already 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 is mandatory for Short Name")
private String shortName;
@NotEmpty(message="Field is mandatory for 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 is the error
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: JSPException including path '/WEB-INF/views/foundation/company-definition.jsp'.
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1287)
at [internal classes]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:124)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207)
at [internal classes]
Caused by: org.apache.tiles.request.render.CannotRenderException: JSPException including path '/WEB-INF/views/foundation/company-definition.jsp'.
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:399)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
at org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
at org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:132)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at 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'.
at org.apache.tiles.request.servlet.ServletUtil.wrapServletException(ServletUtil.java:61)
at org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:125)
at org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:47)
at org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
at org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:68)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
at org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:188)
at org.apache.tiles.template.InsertAttributeModel.execute(InsertAttributeModel.java:132)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:299)
at com.ibm._jsp._foundation_2D_baseLayout._jspx_meth_tiles_insertAttribute_2(_foundation_2D_baseLayout.java:402)
at com.ibm._jsp._foundation_2D_baseLayout._jspService(_foundation_2D_baseLayout.java:160)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:101)
at [internal classes]
at org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:265)
at org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:228)
at org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:57)
at org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:47)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:397)
... 51 more
Caused by: java.lang.InstantiationException: bean pagedListHolder not found within scope
at com.ibm._jsp._company_2D_definition._jspService(_company_2D_definition.java:142)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:101)
at [internal classes]
at org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:123)