我在viewscope中有一个托管bean我想重置使用此范围的表单。根据Baluc的帖子Reset JSF Backing Bean(View or Session Scope) 我在我的代码中做了同样的事情:
public String reset(){
FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean");
return "SamePage?faces-redirect=true";
}
但它不起作用。 有人可以告诉任何解决方案。
答案 0 :(得分:4)
试试这个
public void reset(){
FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean");
}
或者
public String reset(){
return "SamePage";
}
答案 1 :(得分:0)
这个想法是,通过返回非空和非空的内容,您不需要调用FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean")
。以下应该起作用(最终):
public String reset() {
return "";
}
我说"最终"因为我不记得在渲染响应阶段之前或之后是否销毁了视图范围的bean。我怀疑这是为什么BalusC建议在返回值中添加?faces-redirect=true
。