我正在使用 liferay 和 jsf。在我的 portlet 中,我尝试在提交页面后通过为支持 bean 设置新值来进行重置。我得到了空白字段,但是当我刷新页面时,我再次获得了我之前提交的旧值,并且它再次使用旧值提交。
我试图获得新的 viewroot,但它也给了我相同的结果。
public void reset(AjaxBehaviorEvent event){
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ViewHandler viewHandler = application.getViewHandler();
UIViewRoot viewRoot = viewHandler.createView(context, context
.getViewRoot().getViewId());
context.setViewRoot(viewRoot);
context.renderResponse(); //Optional
this.MyBean = new MyBean();
}
PS 提交后,我将此方法称为 reset(null);