2014-02-09 107 views
1

我希望使用JSF(Primefaces)的表單在保存時需要必需的字段(用戶名是本示例)。你也可以將書籍添加到每個用戶,一個用戶可以有0 ... n本書。如果你添加一本新書,它需要給它一個作者和一個名字。提交表單時未驗證必填字段的底數

我用下面的代碼試過了,已經嘗試了Primefaces的Partial Processing的很多方法。但是,它不能正常工作。有時我必須輸入所需的用戶名才能添加圖書或將其保存爲無法使用。有沒有辦法,只保存所需的用戶名並忽略所需的作者和書名?

這是該示例驗證碼:

 <h:form> 
      <p:outputPanel id=„userdetails「> 
       <p:inputText id="name" value="#{bean.name}" /> 
      </p:outputPanel> 

      <p:inputText id="txt_title" value="#{createBookBean.book.title}" 
       required="true" /> 
      <p:inputText id="txt_author" required="true" 
       value="#{createBookBean.book.author}" /> 

      <p:commandButton value="Reset" type="reset" /> 
      <p:commandButton id="btn_add" value="Add" 
       update="books msgs @parent" action="#{createBookBean.reinit}"> 
       <p:collector value="#{createBookBean.book}" 
        addTo="#{createBookBean.books}" /> 
      </p:commandButton> 
      <p:outputPanel id="books"> 
       <p:dataTable id="booksTable" value="#{createBookBean.books}" 
        var="book"> 
        <h:outputText value="#{book.title}" /> 

        <h:outputText value="#{book.author}" /> 

        <p:column> 
         <p:commandLink value="Remove" update=":form:books" 
          process=":form:books"> 
          <p:collector value="#{book}" 
           removeFrom="#{createBookBean.books}" /> 
         </p:commandLink> 
        </p:column> 
       </p:dataTable> 
      </p:outputPanel> 

      <p:commandButton value="Save" update="msgs" process="@form" 
       action="#{bean.save()}"></p:commandButton> // button to save, and ignore required bookname 
     </h:form> 

//按鈕保存和忽視需要BOOKNAME

+0

嘗試commandButton的'immediate'屬性 –

+0

請發佈有效的XML代碼。請不要使用MS Office Word等XML編輯器。您的XML代碼被捲曲的引號污染,這些引號不可能通過JSF/Facelets成功編譯和執行。也請將代碼縮減到最小代碼,以便通過copy'n'paste'n'running複製確切的問題。例如,那些輸出標籤和列標題當然不是必需的,以便重現問題。這樣可以縮短代碼,並且可以更快地找到專家的原因。嘗試擺脫代碼片段旁邊的滾動條。 – BalusC

+0

我希望現在好轉。謝謝 –

回答

3

爲了這個目的,你可以使用屬性commandButtonimmediate

<p:commandButton value="Save" update="msgs" process="@form" 
    action="#{bean.save()}" immediate="true" />