Итак, у меня есть следующий код xhtml:
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{interview.interviewer.name}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu value="#{interview.interviewer}" style="width:100%" converter="interviewerConverter">
<f:selectItems value="#{interviewerController.allInterviewers}" var="s" itemLabel="#{s.name}" itemValue="#{s}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
Когда я пытаюсь редактировать данные в ячейке, я получаю следующую ошибку:
Conversion Error setting value 'com.jpa.entities.Interviewer@288002c2' for 'null Converter'.
Я посмотрелна подобных постах, но не выяснил, что здесь не так.
Также я создал следующий конвертер, с этим я не получаю ошибку конвертера :
@FacesConverter("interviewerConverter")
public class InterviewerConverter implements Converter {
public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
if(value != null && value.trim().length() > 0) {
try {
InterviewerController service = (InterviewerController) fc.getExternalContext().getApplicationMap().get("interviewerController");
return service.getallInterviewers().get(Integer.parseInt(value));
} catch(NumberFormatException e) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid"));
}
}
else {
return null;
}
}
public String getAsString(FacesContext fc, UIComponent uic, Object object) {
if(object != null) {
return String.valueOf(((Interviewer) object).getId());
}
else {
return null;
}
}
}
После реализации конвертера я получаю исключение NullPointerException в следующем списке: (service.getallInterviewers ())
return service.getallInterviewers().get(Integer.parseInt(value));
, но в контроллере список инициализируется следующим образом:
@PostConstruct
public void init(){
initAllInterviewers();
}
Что тут не так?