2013-07-10 74 views
0

這是我第一次同時使用JSF,Hibernate和Primefaces。我的CRUD在新的類別對話框上有一個提交按鈕。按鈕編碼如下:JSF頁面上的CRUD界面沒有更新以反映添加新實體

<p:commandButton value="Submit" update=":form:categoryTable" 
           actionListener="#{categoryController.addCategory}"/> 

現在,它應該用添加到模型中的新元素更新categoryTable。但它不是?最可能的問題是什麼?

此外,一旦添加了新類別,點擊提交對話框不會使其消失。我可以看到模型中出現的類別,但我希望對話框消失以明確該類別已被接受。我將如何啓用此功能。目前,您必須點擊'x'按鈕關閉。

更新:

這是增加了新的記錄,我的模型,現在我的列表以及代碼。

public void addCategory() { 
    categoryRepository.insert(newCategory); 
    categories.add(newCategory); 
} 
+0

使用操作而不是像actionListner ..' '..Also您的第二個問題並不清楚。請爲提交對話框請求詳細說明 –

+0

,該對話框不會消失,您可以在commandButton中使用'oncomplete =「widgetVar.hide();」'。 –

+0

謝謝Eric C.箱子現在正在隱藏。 Pankaj,我已經將actionListener更改爲操作並且沒有任何影響;我添加的類別仍未出現在dataTable中。 – Chucky

回答

0

我真的不明白你的問題。但是,來吧。
我想你想顯示一個對話框。

 <p:commandButton id="searchCommandButton" icon="ui-icon-search" 
      oncomplete="dialog.show()" value="Mostrar Dialog" update="dataTable" 
      actionListener="#{categoryController.addCategory}" /> 

    <p:confirmDialog id="dialog" 
     message="#{wds['dialog.deleteConfirmation.message']}" 
     header="#{wds['dialog.deleteConfirmation.header']}" 
     widgetVar="dialog" appendToBody="true"> 
     <p:commandButton id="okCommandButton" onclick="dialog.hide()" 
      value="Ok" type="button" /> 
    </p:confirmDialog> 



public void addCategory() { 
    categoryRepository.insert(newCategory); 
    categories.add(newCategory); 
    newCategory = new Category(); 
}