我有一个关于JSF及其ManagedBeans的基本问题。假设我们设置了一个ManagedBean,它只包含用于和来自我的视图的数据:
@ManagedBean(name = "dataBean")
@SessionScoped
public class DataBean {下面是我的带有依赖注入的控制器,用于将控制器与模型连接起来:
@ManagedBean
@RequestScoped
public class Controller {
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;现在,让我们考虑一下一个控制器中的几个managedBeans :是否可以向控制器注入另一个ManagedBean:
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean2;如果是这样的话,JSF如何知道哪些bean属于什么.xhtml页面?
我现在很困惑:-/因为我的代码有问题.但首先我要弄清楚
干杯..。
增添:
假设我想从两个控制器中访问相同的managedBean (sessionScoped)。我能简单地说:
@ManagedBean
@RequestScoped
public class Controller {
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;
...
@ManagedBean
@RequestScoped
public class Controller2 {
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;我有相同的DataBean实例吗?
发布于 2010-09-16 08:54:24
此代码:
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean;
@ManagedProperty(value = "#{dataBean}")
private DataBean dataBean2;将在dataBean和dataBean2中注入相同的实例。只有一个#{dataBean}。
加法(回答问题添加:)
是的,如果dataBean是@SessionScoped,那么在两个控制器中都会得到相同的DataBean。本届会议只有一次。
https://stackoverflow.com/questions/3724979
复制相似问题