转换器已实现,但仍然存在错误“转换错误设置值''为'null转换器'”

时间:2011-06-26 22:50:58

标签: jsf converter

我对Converter类有一个很大的问题。我正在使用 h:selectOneMenu 为我的Enetity“产品”选择“类别”。当我提交表格时,我得到以下错误:

•'null Converter'的转换错误设置值''。

我找不到我的实施有什么问题。 我也正在寻找如何使用Seam-Faces ... 有任何想法吗? 感谢名单。

我使用的是JSF Mojarra 2.1.2(FCS 20110613),GlassFish v 3.1,PrimeFaces 2.x,PrettyFaces 3.x和JPA 2.0。

MY 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 Converter课程:

 @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 个答案:

答案 0 :(得分:1)

谢谢,但我已经尝试过system.outs了。通过提交和返回给定值(#ID)的正确类别对象正确发送值。但仍然有同样的错误。

无论如何....我发现了问题。转换器正常工作正常。

唯一导致错误的是现场产品。“image”。我没有图像场转换器。当我从JSF表单中删除此行时,它被提交没有错误。

图像属性的类型是一个字节,因此它也需要在JSF中转换,例如非String的其他字段。

我知道的初学者错误:)

StringToByteConverter: here is an example