2012-02-15 38 views
2

我正在做PrimeFaces對話框中的產品插入表單。我的bean的作用域是會話。我可以插入一個產品,但是當我嘗試插入另一個產品時,表單中有以前的產品信息。我想重置表單。我試過UIInput,但它不起作用。我怎樣才能清除表單?如何在保存後重置表單?

回答

1

只需在保存後創建一個新產品,並確保在保存後您是ajax更新表單。

E.g.

<h:form> 
    <h:inputText value="#{productController.product.name}" /> 
    <h:inputTextarea value="#{productController.product.description}" /> 
    <h:selectOneMenu value="#{productController.product.category}"> 
     <f:selectItems value="#{applicationData.categories}" /> 
    </h:selectOneMenu> 
    <p:commandButton value="Save" action="#{productController.save}" update="@form" /> 
</h:form> 

public void save() { 
    productService.save(product); 
    product = new Product(); 
} 

順便說一句,那種豆真的不會話範圍的歸屬。把它放在視圖範圍內。

+0

但它取決於範圍。當我在創建新產品後放入視圖範圍中時,它是工作的,但在Session範圍中,以前的信息即將到來 – eaktas 2012-02-15 19:33:10

+0

是的,當您使用視圖範圍時,確實也可以只返回'null'或' void'(例如一個空字符串'「」'),那麼視圖將被重新創建,所有屬性都被設置爲默認值。那不就是你要找的東西嗎?爲什麼堅持會議範圍呢? – BalusC 2012-02-15 19:33:53

+0

會話bean沒有必要,但我應該通過不同的頁面導航,當我在視圖範圍中使用時,我得到一個錯誤。但我轉向查看範圍。謝謝 – eaktas 2012-02-15 19:43:25

相關問題