首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新JSF 2.0中的托管会话bean

刷新JSF 2.0中的托管会话bean
EN

Stack Overflow用户
提问于 2011-10-12 04:01:05
回答 1查看 12.6K关注 0票数 3

在将一些数据提交到数据库中之后,我希望会话bean自动刷新自身,以反映最近提交的数据。在JSF2.0中使用托管会话bean时,如何实现这一点?

目前,我必须重新启动web服务器,以便清除会话并重新加载。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 04:35:37

2种方式:

  1. 将它们放在视图范围内。在会话范围内存储特定于视图的数据是一种浪费。如果您对性能有顾虑,您应该专注于在持久层中实现连接池、DB级分页和/或缓存(例如JPA2支持二级缓存)。

@ManagedBean @ViewScoped公共类FooBean { // ... }

  1. 添加一个公共load()方法,以便可以从操作方法调用它(如果需要,可以从另一个bean调用)。

@ManagedBean @SessionScoped公共类FooBean {私有列表foos;@EJB私有FooService fooService;@PostConstruct public void load() { foos = fooService.list();} // ... }

它可以在同一个bean内的action方法中调用(当然,如果您将表单提交到完全相同的托管bean ):

public void submit() { fooService.save(foos);load();}

或者来自另一个bean中的action方法(对于您的托管bean设计与通常不同的情况):

@ManagedProperty("#{ FooBean }")私有提交提交;公共fooBean fooBean(){ fooService.save(foos);fooBean.load();}

当然,这只影响当前会话。如果你也想影响其他会话,你真的应该考虑将它们放在视图范围内,正如第一种方法所建议的那样。

另请参阅:

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7731784

复制
相关文章

相似问题

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