我在我的应用程序中使用了primefaces crud生成器,生成的控制器使用@Named注释。我想从我自己创建的bean ForwardCaseBacking 中访问 TblCasePersonController 中的值,但是这给了我一个例外,如下所示。我试图将注释从@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不存在。检查是否存在适当的吸气剂和/或设定方法。
根本原因: com.sun.faces.mgbean.ManagedBeanCreationException:无法创建托管bean forwardCaseBacking。发现了以下问题: - 托管bean forwardCaseBacking的属性tblCasePersonController不存在。检查是否存在适当的getter和/或setter方法。
答案 0 :(得分:0)
在tblCasePersonController
中为ForwardCaseBacking
添加setter和可选的getter。