首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF:在backingBean仍在工作时显示页面

JSF:在backingBean仍在工作时显示页面
EN

Stack Overflow用户
提问于 2011-01-11 00:46:34
回答 1查看 346关注 0票数 0

也许这个标题并不是很精确,但问题是。我正在做一些JSF项目,我需要以下内容:

当用户登录到我的应用程序(即。当他导航到主页时,需要调用一个从互联网和/或数据库获取一些货币汇率的方法。该方法的执行(页面解析、数据保存等)持续大约5-6秒。我不希望从登录到主页的导航持续5-6秒,我想要其中的一个(还没有决定哪一个)发生:

1)当用户登录时,他看到主页(立即,而不是在5-6秒之后),并且能够在方法在后台工作时单击和/或导航。

2)当用户登录时,他会看到主页(立即)、页面一部分中的一些加载标志,在方法执行之后,他会看到dataTable的汇率。

问题是,怎么做这个?如果我将该方法放入HomePageBean构造函数中,则在执行方法之前不会显示页面。也许我可以在主页上添加一些不可见的元素,并在某个Getter中调用该方法,但我不知道这是否是正确的方法(似乎是黑客),还是它真的会起作用。

我正在使用JSF2.0和Primefaces。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2011-01-11 01:03:36

在下面的示例中使用ApplicationScoped bean:

代码语言:javascript
复制
@ManagedBean(name = "exchRateBean", eager = true)
@ApplicationScoped
public class ExchRateBean  {

  public List<Rate> getRates(Date date) {
    // cached data or DAO methods here
  }

  @PostConstruct
  public void init() {
    // Initial web-app initialization, will run once upon deploy
  }
}

下面是访问应用程序作用域bean的后台bean。

代码语言:javascript
复制
@RequestScoped
public class MyBean  {
  @ManagedProperty(value="#{exchRateBean}")
  private ExchRateBean exchRateBean;

  // your JSF methods
  public List<Rate> getRates(Date date) {
    return getExchRateBean().getRates(date);
  }

  // G&S
  public ExchRateBean getExchRateBean() {
    return exchRateBean;
  }

  public void setExchRateBean(ExchRateBean exchRateBean) {
    this.exchRateBean = exchRateBean;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4653131

复制
相关文章

相似问题

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