Преобразователь реализован, но все еще имеет ошибку «Значение параметра Ошибка преобразования» для «нулевого преобразователя» - PullRequest
1 голос
/ 27 июня 2011

У меня большая проблема с классом конвертера. Я использую h: selectOneMenu , чтобы выбрать «категорию» для моего продукта Enetity. Когда я отправляю форму, я получаю следующую ошибку:

• Значение параметра «Ошибка преобразования» для «нулевого преобразователя».

Не могу найти, что не так с моей реализацией. Также я ищу, как это сделать, работая с Seam-Faces ... Есть идеи? Thanx.

Я использую JSF Mojarra 2.1.2 (FCS 20110613), GlassFish v 3.1, PrimeFaces 2.x, PrettyFaces 3.x и JPA 2.0.

Моя страница JSF:

 <h:selectOneMenu id="selectCategory"
                                 value="#{productController.category}">                 
                    <f:selectItems value="#{categoryController.listCategory()}"  var="category" itemLabel="#{category.name}" itemValue="#{category}"/> 
                    <f:converter converterId="categoryConverter" />    
 </h:selectOneMenu>

Класс конвертера MY:

 @FacesConverter(forClass=Category.class, value="categoryConverter")
public class CategoryConverter implements Converter {
    private CategoryController ctrl;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {

        ctrl = (CategoryController) context.getApplication().getELResolver().getValue(
                context.getELContext(), null, "categoryController");        

        Category category = ctrl.findById(Integer.valueOf(value));
        return category; 
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {

        return "" + ((Category) value).getCategoryid();
    }
}

некоторая часть моего класса ProductController:

@ManagedBean(name = "productController")
@RequestScoped
ProductController class

        public ProductController{
    private Category category;
    //getters :: setters

1 Ответ

1 голос
/ 27 июня 2011

Спасибо, но я пробовал это с system.outs.Значения передаются корректно при отправке и возвращении правильного объекта категории для данного значения (#ID).но все еще с той же ошибкой.

Во всяком случае .... Я нашел проблему.Конвертер работает нормально, как и ожидалось.

Единственное, что вызывает ошибку, было то, что поле product. "Image".У меня не было конвертера для поля изображения.Когда я удалил эту строку из формы JSF, она была отправлена ​​без ошибок.

Тип свойства изображения является байтом, поэтому его также необходимо преобразовать в JSF, например, в другие поля, которые не являются строковыми.

просто ошибка новичка, которую я знаю:)

StringToByteConverter: вот пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...