【问题标题】:I cannot look a new item inserted in another page, I need refresh the page to look it in xhtml我无法查看插入另一个页面的新项目,我需要刷新页面以在 xhtml 中查看
【发布时间】:2015-03-13 02:21:40
【问题描述】:

我正在使用 JPA、EJB 和 JSF (Primefaces) 开发一个 Java EE 7 应用程序。

我有 3 个页面,一个是 index.xhtml,另一个是 insert.xhtml,最后一个是 list.xhtml。流程是:当我在 insert.xhtml 中插入新项目时,我需要导航到 list.xhtml 时,此页面显示插入到 index.xhtml 中的新项目,但这不会发生,我需要刷新页面查看插入到另一个 xhtml 页面中的新项目。所以我的问题是:

我需要做些什么来查看插入的新项目以刷新 list.xhtml 页面?

我有以下组件:

  • 带有 DAO 的 JPA // 没问题。
  • 一个过时的 EJB @ManagedBean @ViewScoped
  • 3 个 xhtml 页面:index.xhml、insert.xhtml 和 list.xhtml。 // 索引页面有 2 个链接到另一个 xhtml 页面。

【问题讨论】:

标签: java jpa primefaces ejb


【解决方案1】:

看起来您对所有 3 个页面都使用了一个 @ViewScoped bean。 viewScoped bean 的生命周期上升到单个视图(或页面)。这意味着,当您导航到新页面时,会创建一个新的 viewScoped bean 实例(并且旧 viewScoped bean 中的数据会丢失)。您是否尝试过使用@SessionScoped bean??

【讨论】:

  • 嗨,问题是,更新 List listUsers;
【解决方案2】:

问题是,更新

List<Object > listUsers,

我忘了使用 List Java Collection

中的 add 和 remove 方法
listUsers.add( newUser )
listUsers.remove( newUser )

整个工作正常。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多