【发布时间】:2013-02-01 11:27:06
【问题描述】:
我正在使用 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();
}
附:提交后我将此方法称为 reset(null);
【问题讨论】:
-
bean 的作用域是什么?
-
如果您的范围是 viewScope 则必须在刷新页面时重置视图。请检查是否由于浏览器的自动填充条目而发生。请重新检查您的托管 bean 范围。
-
@Kush Sahu:你用的是哪个框架?
标签: jsf liferay facelets portlet