在将一些数据提交到数据库中之后,我希望会话bean自动刷新自身,以反映最近提交的数据。在JSF2.0中使用托管会话bean时,如何实现这一点?
目前,我必须重新启动web服务器,以便清除会话并重新加载。
发布于 2011-10-12 04:35:37
2种方式:
@ManagedBean @ViewScoped公共类FooBean { // ... }
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();}
当然,这只影响当前会话。如果你也想影响其他会话,你真的应该考虑将它们放在视图范围内,正如第一种方法所建议的那样。
另请参阅:
https://stackoverflow.com/questions/7731784
复制相似问题