У меня проблема с компонентом selectMany Primefaces.
Я проверяю некоторые параметры в selectManyMenu, но возвращаю размер arrayList 0 в bean-компоненте bReservarPista
<p:selectManyMenu id = "manyHoras" value = "#{bReservarPista.horasCheckMarcadas}" converter = "HoraCheckConverter"
var = "horaCheck" filter = "true" filterMatchMode = "contains" showCheckbox = "true" style = "height: 235px">
<f:selectItems value = "#{bReservarPista.horasCheck}" var = "horaCheck" itemLabel = "#{horaCheck.label}" itemValue = "#{horaCheck}" />
<p:column>
<h:outputText value = "#{horaCheck.label}" />
</p:column>
</p:selectManyMenu>
В bean-компоненте метод foward получает arrayylist horasCheckMarcadas size 0
public void setHorasCheckMarcadas(ArrayList<HoraCheck> horasCheckMarcadas) {
this.horasCheckMarcadas = horasCheckMarcadas;
Это конвертер
@FacesConverter("HoraCheckConverter")
public class HoraCheckConverter implements Converter{
@Override //Este método lo que hace es devolver un objeto buscado con un string value.
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value != null && value.trim().length() > 0) {
try {
// el original de cine. se conectaba a ModeloBD. Podría hacer un ModeloBD aqui, o conectar con el dao
DaoHoraCheck daohoraCheck = new DaoImplHoraCheck();
HoraCheck cat= daohoraCheck.verHoraCheck(Integer.parseInt(value));
return cat;
} catch(NumberFormatException e) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid Cine."));
}
}
else {
return null;
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
try {
if (value != null) {
return String.valueOf(((HoraCheck)value).getIdHoraCheck());
}
else {
return null;
}
}
catch (Exception e) {
return null;
}
}
Спасибо
спасибо, я еще добавил
Публикуйте минимальный воспроизводимый пример ... всегда
Я рядом с проблемой, класс HoraCheck не принадлежит базе данных
Решение простое, не используйте конвертер.




Выложите пожалуйста код HoraCheckConverter, возможно, в этом виноват.