我有查看范围搜索和编辑由以下内容创建的bean:
javax.faces.bean.ManagedBean
javax.faces.bean.ViewScoped
当用户进行搜索并查看搜索结果时,他选择一个结果并在新窗口中打开它,在保存更改后我想在搜索bean中更新结果,所以当我尝试使用任何搜索bean时以下方法:
public static <T> T getBean(String beanName) {
FacesContext context = FacesContext.getCurrentInstance();
return (T) context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);
}
public static <T> T getViewScopeBean(String beanName){
Map<String, Object> viewMap = FacesContext.getCurrentInstance().getViewRoot().getViewMap();
return (T) viewMap.get(beanName);
}
它返回null并且找不到第二个方法的搜索bean,并且对于第一个方法它创建了一个新的搜索bean实例(虽然搜索页面仍然打开),当我打印所有的值时它不包含搜索bean的地图,请告知我如何获得搜索bean。
感谢。