目标无法访问,'empIqama'返回null

时间:2013-07-24 06:46:39

标签: hibernate jsf-2

我收到错误目标unreachable.my xhtml文件和java文件在下面。

<h: inputText id = "iqamaType"
value = "#{manageEmployee.empIqama.aqamaType}"
styleClass = "input"
required = "true"
requiredMessage = "#{msg['iqamatype_msg']}"
style = "font-weight:bold" />

在托管bean中

public Tbl_aqama getEmpIqama() {
    return empIqama;
}

public void setEmpIqama(Tbl_aqama empIqama) {
    this.empIqama = empIqama;
}

2 个答案:

答案 0 :(得分:0)

请检查以下内容, 1)bean manageEmployee被正确声明。通过注释(@ManagedBean)或使用faces-config.xml。 2)确保对象empIqama不为空。

如果仍未解决,请分享一些代码段。

答案 1 :(得分:0)

JSF / EL不设置/创建嵌套属性。鉴于这种结构,

value="#{manageEmployee.empIqama.aqamaType}"

所有EL基本上都是以下内容:

manageEmployee.getEmpIqama().setAqamaType(input.getValue());

看,它在任何地方都没有setEmpIqama()。你必须准备你自己。您的具体问题是getEmpIqama()返回null,这使setAqamaType()调用无法进行。错误消息也正好说明了这一点。

准备它的最明智的地方是与视图关联的请求/视图范围bean的(post)构造函数,在本例中是#{manageEmployee} bean背后的类:

@PostConstruct
public void init() {
    empIqama = new Tbl_aqama();
}

请注意,此构造中完全不需要setter。它从未被JSF / EL使用过。你可以安全地删除它。