如何从另一个视图范围bean更新视图范围bean?

时间:2015-03-30 06:48:01

标签: jsf-2 dependency-injection

我有查看范围搜索和编辑由以下内容创建的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。

感谢。

0 个答案:

没有答案