【问题标题】:Keep the state of ManagedBean in page change在页面变化中保持 ManagedBean 的状态
【发布时间】:2015-10-12 17:32:30
【问题描述】:

我有一个实体Artist,而这位艺术家应该有一个或多个Musics。

当用户点击“新艺术家”时,可以填写艺术家的所有字段(姓名、地址、风格等)。此表单与名为ArtistMB 的托管bean 相关联。正如我所说,Artist 可以有一个或多个Musics,所以在这个表单中,用户应该点击“新音乐”并重定向到另一个页面new_music.xhtml,但用户还没有在数据库中保存Artist然而,ArtistMB 的所有内容现在应该保存在内存中,因为当用户完成添加新的Music 时,这个Music 将被添加到Artist bean 内的Set<Music>,毕竟这是@ 987654333@ bean 将被保存在数据库中。

我该怎么做?如果使用@ViewScoped,那么当我重定向到另一个页面new_music.xhtml时,ArtistMB的状态将丢失。

【问题讨论】:

  • 我会使用相同的窗口,可能是通过打开一个模式窗口来添加/更新当前艺术家参考的音乐。这样,您仍然可以使用 @ViewScoped bean,而无需导航到新视图。
  • 我不能使用模态。我应该在新页面中添加有关音乐的信息
  • 然后将艺术家参考保存在会话或数据库之类的地方,在新页面中检索相同的艺术家并进行修改。
  • 我认为注释有另一种方式
  • @ConversationScoped属于CDI,去掉查询字符串参数更容易失效。

标签: jsf jsf-2 many-to-one view-scope


【解决方案1】:

您可以在导航到您的音乐页面之前将您的艺术家放入 Flash,请参阅this question

【讨论】:

    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    相关资源
    最近更新 更多