Я использую PickList от Primefaces и не могу заставить его работать. Моя проблема - конвертер. Я следовал указаниям другого поста, но тщетно.
Вот мое лицо
<p:pickList value="#{customerBean.preferredCategories}" var="category"
itemLabel="#{category.description}" itemValue="#{category}" converter="#{categoryConverter}">
</p:pickList>
и вот мой кастомный конвертер
@FacesConverter(forClass=CategoryLevelView.class,value="categoryLevelConverter")
public class CategoryConverter implements Converter {
public String getAsString(FacesContext context, UIComponent component, Object value) {
return String.valueOf(((Category) value).getId());
}
public Object getAsObject(FacesContext arg0, UIComponent arg1, String value) {
Category category = new Category();
category.setId(Integer.parseInt(value));
return category;
}
}
Категория состоит из идентификатора (int) и описания (String)
Я хочу, чтобы как исходные, так и целевые списки отображали описание String и выбранные категории, заданные в виде списка категорий в моем компоненте. Оба списка правильно загружены в bean-компонент, а DualListModel заполняется в предпочитаемой категории. Проблема в том, что PickList даже не отображается. Ничего не происходит, никакая ошибка не отображается, страница просто прекращает рендеринг, когда ходы приходят в PickList, и я думаю, что это из-за неправильного использования конвертера. Какой будет правильный способ реализовать мой этот случай?
Спасибо.