2013-07-24 3 views
0

Я получаю сообщение об ошибке unreachable.my xhtml файл и java-файл ниже.Target Unreachable, 'empIqama' возвращается null

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

В управляемом компоненте

public Tbl_aqama getEmpIqama() { 
    return empIqama; 
} 

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

Как вы объявили 'empIqama' в классе' manageEmployee'? неужели вы хотите разделить класс Tbl_aqama? – ggDeGreat

+0

Ваш вопрос неполный: Где находится трассировка стека и какой компонент является недостижимым? – kolossus

ответ

0

Пожалуйста, проверьте следующее, 1) Компонент manageEmployee правильно объявлена. Либо через аннотацию (@ManagedBean), либо используя faces-config.xml. 2) Убедитесь, что объект empIqama не равен нулю.

Если это не поможет, пожалуйста, поделитесь некоторыми фрагментами кода.

0

JSF/EL не устанавливает/не создает вложенные свойства. Учитывая эту конструкцию,

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

всех EL в основном делают под чехлами:

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

Посмотрите, это не делает setEmpIqama() в любом месте. Вы должны подготовить его самостоятельно. Ваша конкретная проблема заключается в том, что getEmpIqama() возвращен null, что делает невозможным вызов setAqamaType(). Сообщение об ошибке также сообщает именно это.

Самое разумное место, чтобы подготовить его есть (запись) Конструктор запроса/представления областью действия боб, связанный с представлением, в этом случае класс позади #{manageEmployee} боба:

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

Обратите внимание, что setter совершенно ненужен в этой конструкции. Он никогда не использовался JSF/EL. Вы можете безопасно удалить его.

Смежные вопросы