首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF2 ManagedBeans生命周期

JSF2 ManagedBeans生命周期
EN

Stack Overflow用户
提问于 2010-09-16 08:33:06
回答 1查看 851关注 0票数 2

我有一个关于JSF及其ManagedBeans的基本问题。假设我们设置了一个ManagedBean,它只包含用于和来自我的视图的数据:

代码语言:javascript
复制
@ManagedBean(name = "dataBean")
@SessionScoped
public class DataBean {

下面是我的带有依赖注入的控制器,用于将控制器与模型连接起来:

代码语言:javascript
复制
@ManagedBean
@RequestScoped
public class Controller {
  @ManagedProperty(value = "#{dataBean}")
  private DataBean dataBean;

现在,让我们考虑一下一个控制器中的几个managedBeans :是否可以向控制器注入另一个ManagedBean:

代码语言:javascript
复制
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean2;

如果是这样的话,JSF如何知道哪些bean属于什么.xhtml页面?

我现在很困惑:-/因为我的代码有问题.但首先我要弄清楚

干杯..。

增添:

假设我想从两个控制器中访问相同的managedBean (sessionScoped)。我能简单地说:

代码语言:javascript
复制
@ManagedBean
@RequestScoped
public class Controller {
  @ManagedProperty(value = "#{dataBean}")
  private DataBean dataBean;
...
@ManagedBean
@RequestScoped
public class Controller2 {
  @ManagedProperty(value = "#{dataBean}")
  private DataBean dataBean;

我有相同的DataBean实例吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-16 08:54:24

此代码:

代码语言:javascript
复制
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean2;

将在dataBeandataBean2中注入相同的实例。只有一个#{dataBean}

加法(回答问题添加:)

是的,如果dataBean@SessionScoped,那么在两个控制器中都会得到相同的DataBean。本届会议只有一次。

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

https://stackoverflow.com/questions/3724979

复制
相关文章

相似问题

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