2017-10-21 10 views
0

공급 업체 추가 및보기 용 코드를 작성하고 있습니다. 그러나 문제는 다른 형식으로 테이블을 내보내는 dataexporter를 추가 한 것입니다. dataexporter를 클릭하면 datatable을 내보내는 대신 inpuut 필드의 유효성을 검사합니다. 아래 코드 참조dataexporter를 클릭하면 데이터 테이블을 내보내는 대신 입력 필드의 유효성을 검사합니다.

<h:panelGrid columns="6"> 
          <p:outputLabel value="Vendor Name: " for="vname"/> 
          <p:inputText id="vname" required="true" value="#{bank.vendor_name}" /> 
          <p:message for="vname"/> 

          <p:outputLabel value="Vendor Bank: " for="bank"/> 
          <p:selectOneMenu id="bank" value="#{bank.bankmode.bankName}" required="true" requiredMessage="Bank required"> 


           <f:selectItem itemLabel="--Select Bank--" itemValue="" noSelectionOption="true"/> 
           <f:selectItems value="#{bank.bankmodel}" 
               var="singlevalue" 
               itemLabel="#{singlevalue.bankName}" 
               itemValue="#{singlevalue.bankName}"/> 
          </p:selectOneMenu> 


          <p:message for="bank"/> 

          <p:outputLabel value="Vendor Account Number: " for="anum"/> 
          <p:inputText id="anum" required="true" value="#{bank.vendor_acct}" requiredMessage="Account Number required" /> 
          <p:message for="anum"/> 

          <p:outputLabel value="Vendor Contact Address: " for="adress"/> 
          <p:inputTextarea id="adress" required="true" value="#{bank.vendor_address}" requiredMessage="Contact Address required" /> 
          <p:message for="adress"/> 

          <p:outputLabel value="Vendor Email Address: " for="email"/> 
          <p:inputText id="email" required="true" label="email" size="40" 
             requiredMessage="Please enter your email address." 
             validatorMessage="Invalid email format" 
             value="#{bank.vendor_email}"> 

           <f:validateRegex 
            pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" /> 

          </p:inputText> 
          <p:message for="email" /> 

          <p:outputLabel value="Vendor Phone Number " for="pnum"/> 
          <p:inputText id="pnum" required="true" value="#{bank.vendor_phone}" requiredMessage="Phone number required" /> 
          <p:message for="pnum"/> 

          <p:commandButton value="save" process="@this vname,bank,anum,adress,email,pnum" update=":templateForm:growl,singleTB,ven" actionListener="#{bank.insertData}" /> 

         </h:panelGrid> 
    <p:dataTable var="ven_tab" id="singleTB" 
             value="#{bank.vendorList}" 
             rowKey="#{ven_tab.id}" 
             selection="#{bank.selectedList}" selectionMode="single" 
             rows="10"           
             editable="true"           
             paginatorTemplate="{CurrentPageReport} 
             {FirstPageLink} {PreviousPageLink} 
             {PageLinks} {NextPageLink} {LastPageLink} " 
             paginator="true" style="margin-bottom:20px" 
             rowsPerPageTemplate="5,10,15"> 

           <p:ajax event="rowEdit" listener="#{bank.onRowEdit}" update=":templateForm:growl" /> 
           <p:ajax event="rowEditCancel" listener="#{bank.onRowCancel}" update=":templateForm:growl" /> 

           <p:column> 
            <f:facet name="header"> 
             <h:outputText value="Vendor Id"/> 
            </f:facet> 

            <h:outputText value="#{ven_tab.vendorId}"/> 

           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Name"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorName}"/></f:facet> 
             <f:facet name="input"><p:inputText value="#{ven_tab.vendorName}" required="true" requiredMessage="Name is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Phone Number"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorPnum}"/></f:facet> 
             <f:facet name="input"><p:inputText value="#{ven_tab.vendorPnum}" required="true" requiredMessage="Phone is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Email"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorEmail}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorEmail}" requiredMessage="Email is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 
           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Contact Address"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorContact}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorContact}" requiredMessage="Contact is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 
           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Bank"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorBank}"/></f:facet> 
             <f:facet name="input"> 
              <p:selectOneMenu id="bank" style="width:100%" value="#{ven_tab.vendorBank}" required="true" requiredMessage="Bank required"> 

               <f:selectItem itemLabel="--Select Bank--" itemValue="" noSelectionOption="true"/> 
               <f:selectItems value="#{bank.bankmodel}" 
                   var="singlevalue" 
                   itemLabel="#{singlevalue.bankName}" 
                   itemValue="#{singlevalue.bankName}"/> 
              </p:selectOneMenu></f:facet> 
            </p:cellEditor> 
           </p:column> 
           <p:column> 
            <f:facet name="header"> 
             <h:outputText value="Vendor Account Number"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorAcct}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorAcct}" requiredMessage="Account is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 
           </p:column> 
           <p:column style="width:32px"> 
            <p:rowEditor /> 
           </p:column> 


          </p:dataTable> 

          <h3>Export Page Data Only</h3> 
          <p:contextMenu for="singleTB" rendered="#{bank.status}" > 
           <p:menuitem value="Delete" process="@this singleTB" update=":templateForm:growl,singleTB" icon="ui-icon-close" actionListener="#{bank.deleteCar}"/> 
          </p:contextMenu> 
          <h:commandLink> 
           <p:graphicImage value="/images/excel.png" /> 
           <p:dataExporter type="xls" target="singleTB" fileName="report" pageOnly="true"/> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/pdf.png" /> 
           <p:dataExporter type="pdf" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/csv.png" /> 
           <p:dataExporter type="csv" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/xml.png" /> 
           <p:dataExporter type="xml" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

도와주세요. 나는 언젠가 이것을 고치고 같은 결과를 얻으려고 노력해왔다. 감사합니다

답변

1

JSF에는 6 개의 라이프 사이클 단계가 있습니다. 그 중 하나가 Process Validation 단계입니다. 이 단계에서는 입력 구성 요소 (예 : 입력 필드)의 유효성 검사가 수행됩니다. 귀하의 경우에는 유효성 검사를 원하지 않습니다. Render Response 단계가 생략됩니다 때까지이는 Apply Request Values 후 모든 수명주기 단계를 설정으로

<h:commandLink immediate="true"> 
    <p:graphicImage value="/images/excel.png" /> 
    <p:dataExporter type="xls" target="singleTB" fileName="report" pageOnly="true"/> 
</h:commandLink> 

: 그래서 당신이 무엇을로 CommandLink는 구성 요소에 immediate 속성을 추가한다.

+0

@ T.Gold : 새로운 질문에 새로운 질문하시기 바랍니다. – Kukeltje