0

我收到一个错误目标无法访问。我的 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;
}
4

2 回答 2

0

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

如果这不能解决,请分享一些代码片段。

于 2013-07-24T10:57:07.153 回答
0

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

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

EL 基本上在幕后所做的一切是:

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

看,它没有setEmpIqama()任何作用。你必须自己准备。你的具体问题是getEmpIqama()返回null的,这使得setAqamaType()调用不可能。错误消息也准确地说明了这一点。

准备它的最明智的地方是与视图关联的请求/视图范围 bean 的(后)构造函数,在这种情况下是#{manageEmployee}bean 后面的类:

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

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

于 2013-07-24T14:13:24.737 回答