【问题标题】:JSF2: Pass objects from one requestscoped bean into another Requestscoped bean?JSF2:将对象从一个 requestscoped bean 传递到另一个 Requestscoped bean?
【发布时间】:2011-03-11 03:05:47
【问题描述】:

在 JSF2 中,如何将对象从一个 requestscoped bean 传递到另一个 requestscoped bean? 我真的不想让它们成为 sessionscoped。

也许我可以将一个 bean 注入另一个?

谢谢。

【问题讨论】:

  • 您是否尝试在没有会话范围 bean 的情况下跨请求存储状态?如果是这样,请查看“flash”范围,看看它是否有帮助。

标签: java jsf jsf-2


【解决方案1】:

使用ManagedProperty注解:

@ManagedBean(name="beanA") @RequestScoped
public class BeanA implements Serializable {
  @ManagedProperty(value="#{beanB}") 
  private BeanB beanB;
  public void setBeanB(BeanB b) { this.beanB = b; }
  public BeanB getBeanB() { return beanB; }
}

@ManagedBean(name="beanB") @RequestScoped
public class BeanB implements Serializable {}

我还没有测试过该代码。您可以通过在faces-config.xml 中定义托管属性来获得类似的结果。

【讨论】:

  • 我也对您的回答感兴趣。说,如果我想在beanA的@PostConstruct init()方法中调用beanB方法,我可以这样做beanB#someMethod吗?这个方法可以从表单的提交动作中返回一个值吗?
  • @user463053 - 这取决于值的来源 - 如果您通过表达式 #{param.foo} 直接从参数映射中注入它,您可以在 @PostConstruct 中使用它;如果该值绑定到控件,则在更新模型值阶段之后才可用。如果您需要更多详细信息,请使用短代码 sn-ps 打开一个新问题,显示您想要实现的目标。
  • 感谢您的反馈。我在这里创建了一个新帖子 [stackoverflow.com/questions/5648299/…。您能否提供一些建议,因为我在这个问题上停留了一天。
猜你喜欢
  • 1970-01-01
  • 2014-12-28
  • 2016-04-02
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 2013-12-07
相关资源
最近更新 更多