在JSF1中,您可以通过
访问当前FacesContext
的bean实例
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext()
ev.getApplicationMap().get(beanName) // get an @ApplicationScoped bean instance
ev.getSessionMap().get(beanName) // get a @SessionScoped bean instance
ev.getRequestMap().get(beanName) // get a @RequestScoped bean instance
在JSF2中引入了@ViewScoped
,但我在getViewMap()
上找不到相应的ExternalContext
方法?我使用的是最新的JSF 2.1.1-b04。
我误解了@ViewScoped
bean的某些方面吗?在服务器端获得@ViewScoped
bean实例还有另一种好的做法吗?
谢谢, 史蒂夫
答案 0 :(得分:7)
尝试评估表达式(evaluateExpressionGet):
context.getApplication().evaluateExpressionGet(context, "#{beanName}", BeanClass.class)
答案 1 :(得分:7)