【问题标题】:How to pass values across managed beans one annotated with @Named and the other @ManagedBean如何在一个使用@Named 注释的托管bean 和另一个@ManagedBean 之间传递值
【发布时间】:2014-02-28 15:22:57
【问题描述】:

我在我的应用程序中使用了 primefaces crud 生成器,并且生成的控制器使用 @Named 进行了注释。我想从我自己创建的 bean ForwardCaseBacking 访问 TblCasePersonController 中的 a 值,但这给了我一个异常,如下所示。我试图将注释从 @Named 更改为 @ManagedBean 它仍然不起作用。,

这是 TblCasePersonController

@Named(value = "tblCasePersonController")
@SessionScoped
public class TblCasePersonController extends AbstractController<TblCasePerson> {

private TblCasePerson selected;
public TblCasePersonController() {
    super(TblCasePerson.class);
}

@Override
public TblCasePerson getSelected() {
    //Get the selected CasePerson
    selected = super.getSelected(); 

    TblCase tblCaseId = new TblCase();
    tblCaseId.setId(super.getIdOfSubmittedRecord());
    selected.setTblCaseId(tblCaseId);

    return selected;
}


这是 ForwardCaseBacking

@ManagedBean
@ViewScoped
public class ForwardCaseBacking implements Serializable {

private int caseId;

@ManagedProperty(value="#{tblCasePersonController}")
private TblCasePersonController tblCasePersonController;

@PostConstruct
public void init(){
  if(tblCasePersonController.getSelected()!=null){
        caseId = tblCasePersonController.getSelected().getId();
    }
}


我得到了这个异常

例外: javax.servlet.ServletException:无法创建托管 bean forwardCaseBacking。发现以下问题: - 托管 bean forwardCaseBacking 的属性 tblCasePersonController 不存在。检查是否存在适当的 getter 和/或 setter 方法。

根本原因: com.sun.faces.mgbean.ManagedBeanCreationException:无法创建托管 bean forwardCaseBacking。发现以下问题: - 托管 bean forwardCaseBacking 的属性 tblCasePersonController 不存在。检查是否存在适当的 getter 和/或 setter 方法。

【问题讨论】:

  • 为什么不把ForwardCaseBacking 做成@Named bean?
  • 检查ForwardCaseBacking 中是否有tblCasePersonController 的设置器。如果没有,请尝试添加它。
  • 你检查过根本原因吗? Property tblCasePersonController for managed bean forwardCaseBacking does not exist. Check that appropriate getter and/or setter methods exist. 基本上,您在ForwardCaseBacking 中错过了tblCasePersonController 的setter 方法
  • @VasilLukach。谢谢。我添加了 getter 和 setter,效果很好。
  • @XtremeBiker。谢谢,我想我真的没有仔细看根本原因告诉我要做什么。添加属性后,它工作正常。谢谢。

标签: java jsf-2 primefaces


【解决方案1】:

ForwardCaseBacking 中为tblCasePersonController 添加setter 和可选的getter。

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2012-03-24
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多