【发布时间】:2012-03-07 03:29:15
【问题描述】:
我正在 PrimeFaces 对话框中制作产品插入表单。我的 bean 的范围是会话。我可以插入一个产品,但是当我尝试插入另一个产品时,表单有以前的产品信息。我想重置表格。我试过UIInput,但它不起作用。如何清除表单?
【问题讨论】:
标签: html jsf-2 primefaces
我正在 PrimeFaces 对话框中制作产品插入表单。我的 bean 的范围是会话。我可以插入一个产品,但是当我尝试插入另一个产品时,表单有以前的产品信息。我想重置表格。我试过UIInput,但它不起作用。如何清除表单?
【问题讨论】:
标签: html jsf-2 primefaces
保存后只需创建一个新产品,并确保您在保存后对表单进行 ajax 更新。
例如
<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();
}
顺便说一句,这种 bean 确实不属于会话范围。放在视图范围内。
【讨论】:
null 或void 之外的任何内容(例如空字符串""),那么视图将是重新创建所有属性设置为默认值。那不正是你要找的吗?那为什么还要坚持会话范围呢?
h:link和f:viewParam。