2012-02-15 13 views
2

Я делаю форму вставки продукта в диалоге PrimeFaces. Область моего bean - сеанс. Я могу вставить продукт, но когда я пытаюсь вставить другой продукт, форма имеет информацию предыдущего продукта. Я хочу сбросить форму. Я пробовал UIInput, но он не работает. Как я могу очистить форму?Как сбросить форму после сохранения?

ответ

1

Просто создайте новый продукт после его сохранения и убедитесь, что вы обновляете форму после сохранения.

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

, но это зависит от объема. когда я добавляю в область видимости после создания нового продукта, это работает, но в области сеанса предшествует предыдущая информация – eaktas

+0

Да, когда вы используете область представления, тогда вы действительно можете просто вернуть что-либо еще, кроме 'null' или' void' (например, пустая строка '' ''), тогда представление будет воссоздано со всеми параметрами, установленными по умолчанию. Разве это не то, что вы ищете? Зачем тогда придерживаться области сеанса? – BalusC

+0

Session bean is not needed, но я должен передавать другую страницу с навигацией, когда я использую в области представления, я получаю сообщение об ошибке. Но я обратился к области обзора. спасибо – eaktas

Смежные вопросы