2011-06-26 17 views
1

Converterクラスに大きな問題があります。 h:selectOneMenuを使用して、私のEnetity "Product"の "カテゴリ"を選択しています。私がフォームを提出すると、エラーが発生します。Converterは実装されていますが、まだ「nullコンバータ」の「Conversion Error setting value」のエラーがあります

•変換エラーの設定値は 'NULL変換'です。

私の実装に間違いがありません。 また、Seam-Facesで作業する方法を検索しています... アイデアはありますか? Thanx。

私は、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クラス:私のProductControllerクラスの

@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(); 
    } 
} 

一部:

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

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

答えて

1

おかげで、私はシステムでそれをしようとしました。アウト。値は、指定された値(#ID)のサブミットおよび返された正しいカテゴリオブジェクトによって正しく送信されます。依然として同じエラーが発生しています。

とにかく...私は問題を発見しました。コンバータは正常に動作します。

エラーを引き起こすのは、フィールド製品「image」だけでした。私はイメージフィールドのためのコンバータを持っていませんでした。 JSFフォームからこの行を削除すると、エラーなしで送信されます。

イメージプロパティのタイプは1バイトなので、JSFで変換する必要があります。たとえば、String以外のフィールドです。

ちょうど初心者エラー私は:)知っ

StringToByteConverter: here is an example

関連する問題