Java 如何在JSP页面的一部分,即在一个特定的div中显示hibernate绑定验证异常

Java 如何在JSP页面的一部分,即在一个特定的div中显示hibernate绑定验证异常,java,jsp,spring-mvc,hibernate-validator,Java,Jsp,Spring Mvc,Hibernate Validator,在提交表单时,它正在检查是否存在任何绑定错误,因为根据模型中的定义,name和short name必须为非空。 但在这样做的同时,它也犯了错误。不知道为什么。?? 有人能帮我吗 公司定义.jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%

在提交表单时,它正在检查是否存在任何绑定错误,因为根据模型中的定义,name和short name必须为非空。 但在这样做的同时,它也犯了错误。不知道为什么。?? 有人能帮我吗

公司定义.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> --%>
Tiles.xml

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



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

>
看。 我认为您应该使用您的
class
更改
type
属性
公司定义.jsp

中,不添加到模型,而是添加到请求范围。
模型.addObject(“pagedListHolder”,pagedListHolder)更改为
request.setAttribute(“pagedListHolder”,pagedListHolder)
    <?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

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