【发布时间】: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做成@Namedbean? -
检查
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