Jsf javax.el.PropertyNotFoundException:targetunreachable,';空';外键引用返回null
我知道managedBean有问题,但我不知道是什么问题 当我从jsf页面尝试Jsf javax.el.PropertyNotFoundException:targetunreachable,';空';外键引用返回null,jsf,foreign-keys,jpa-2.0,Jsf,Foreign Keys,Jpa 2.0,我知道managedBean有问题,但我不知道是什么问题 当我从jsf页面尝试departmentManagedBean.department.faculty.facultyName时,它会给出一个空指针,如下所示: javax.el.PropertyNotFoundException:/administrator/department/DepartmentRegistration.xhtml@30260 value=“#{departmentRequestBean.department.fac
departmentManagedBean.department.faculty.facultyName
时,它会给出一个空指针,如下所示:
javax.el.PropertyNotFoundException:/administrator/department/DepartmentRegistration.xhtml@30260 value=“#{departmentRequestBean.department.faculty.facultyName}”:无法访问目标,“null”返回null
value=“#{departmentRequestBean.department.faculty.facultyName}”:无法访问目标,“null”返回null 这基本上意味着以下值之一
{departmentRequestBean.department}
{departmentRequestBean.department.faculty}
null
。由于您自己明确创建了部门
,因此这只能意味着教员
仍然是空的
要正确修复它,请在DepartmentRequestBean
private Department department = new Department();
借
以这种方式在支持bean中初始化department类
public Department getDepartment() {
if(department == null){
department = (Department)super.getInstance(Department.class);
}
return department;
}
如果对象变为null,这将创建一个新的department对象
public class DepartmentSessionBean {
@PersistenceContext(unitName = "ApplicationPU")
private EntityManager em;
public void persist(Department department) {
em.persist(department);
}
}
public class Faculty implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "FacultyID")
private Integer facultyID;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 255)
@Column(name = "FacultyName")
private String facultyName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "faculty", fetch = FetchType.EAGER)
private List<Department> departmentList;
public Faculty() {
}
public Faculty(Integer facultyID) {
this.facultyID = facultyID;
}
public Faculty(Integer facultyID, String facultyName) {
this.facultyID = facultyID;
this.facultyName = facultyName;
}
public Integer getFacultyID() {
return facultyID;
}
public void setFacultyID(Integer facultyID) {
this.facultyID = facultyID;
}
public String getFacultyName() {
return facultyName;
}
public void setFacultyName(String facultyName) {
this.facultyName = facultyName;
}
public List<Department> getDepartmentList() {
return departmentList;
}
public void setDepartmentList(List<Department> departmentList) {
this.departmentList = departmentList;
}
}
@ViewScoped public class DepartmentRequestBean {
@EJB
private DepartmentSessionBean departmentSessionBean;
private Department department = new Department();
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public void save(){
departmentSessionBean.persist(department);
}
public DepartmentRequestBean() {
this.faculty = new Faculty();
}}
private Department department = new Department();
private Department department;
@PostConstruct
public void init() {
department = new Department();
department.setFaculty(new Faculty());
}
public Department getDepartment() {
if(department == null){
department = (Department)super.getInstance(Department.class);
}
return department;
}