首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OmniFaces中的getBackingBean()

OmniFaces中的getBackingBean()
EN

Stack Overflow用户
提问于 2013-04-26 20:44:58
回答 1查看 137关注 0票数 1

我可能太盲目了,对OmniFaces也太陌生了,在API中找不到一个基本的方法来检索支持bean实例。如果有这样的方法,我在哪里可以找到呢?就像这样:

代码语言:javascript
复制
public static Object getBackingBean(String name) {
    FacesContext context = FacesContext.getCurrentInstance();
    Application app = context.getApplication();
    ValueExpression expression = app.getExpressionFactory()
      .createValueExpression(context.getELContext(), String.format("#{%s}", name), Object.class);
    return expression.getValue(context.getELContext());
}

或者使用泛型的更动态的版本:

代码语言:javascript
复制
public static <T> T getBackingBean(String name) {
    FacesContext context = FacesContext.getCurrentInstance();
    Application app = context.getApplication();
    ValueExpression expression = app.getExpressionFactory()
      .createValueExpression(context.getELContext(), String.format("#{%s}", name), Object.class);
    return (T) expression.getValue(context.getELContext());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-28 03:13:50

我们有一个几乎类似的方法,但它可以计算(并获得)任何类型的表达式,而不仅仅是一个简化的根表达式。

我是Faces.evaluateExpressionGet

您可以按如下方式使用它:

代码语言:javascript
复制
MyBean myBean = Faces.evaluateExpressionGet("#{myBean}");

其中MyBean例如定义如下:

代码语言:javascript
复制
@ViewScoped
@ManagedBean
public class MyBean {
    // ...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16236810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档