我有一个请求范围的 bean,它填充了表单中的各种属性。然后使用这些属性来更新另一个视图范围的 bean。现在我想给用户以这样一种方式重置表单的可能性,即所有表单字段都保存第一次加载页面时的值。这些值是通过 bean 本身定义的:
@ManagedBean
@RequestScoped
public class ItemSearchBean {
private Rarity minRarity = Rarity.None;
private Rarity maxRarity = Rarity.None;
...
}
请注意,尽管表单提交按钮实际上调用了一个 ajax 请求,因此不会继续重新加载整个页面。
提交按钮:
<p:commandButton value="Search"
actionListener="#{itemSearchBean.refreshTable}"
update="itemTable,notify"/>
我已经尝试使用一个简单的重置按钮,但它只是将表单重置为最后提交的值:
<p:commandButton type="reset" value="Reset"/>
必须以某种方式向服务器询问新的 bean(或阻止它填充 bean),但我不知道如何做到这一点。