2012-06-01 34 views
5

したがって、データベースに配信を追加するためにseamを使用してドロップダウンメニューを作成しようとしています。ドロップダウンメニューを使用して、データベースのどの従業員が配信を行っているかを選択しています。メニューにはデータベース内のすべての従業員が表示されますが、1つを選択して追加をクリックすると、「コンバーターエラーの設定値(従業員のハッシュ)」の「nullコンバータ」のエラーが表示されます。プルダウンメニュー「nullコンバータ」の「変換エラー設定値」

ドロップダウンメニュー:

<my:dropdown label="Employee ID" id="emp" value="#{deliveryPort.emp}" required="false"> 
        <f:selectItem itemValue="#{null}" itemLabel="Selct One"/> 
        <s:selectItems value="#{deliveryPort.empList}" var="emp" label="# {emp.employeeId} #{ emp.nameFirst}"/> 
       </my:dropdown> 

任意の助けいただければ幸いですあなたはこのエラーを回避するために2つのことをすべきあなた

答えて

7

ありがとう:。

  1. があなたのクラスていることを確認しますは、バッキングBean

BalusCに渡す前に、あなたの選択した値を変換するコンバータを使用しequals()hashCode()

  • を実装するコンバータとその使用方法についての素晴らしいtutorialを書いています。

  • +0

    ご協力いただきありがとうございます。それは素晴らしい記事です。 – user1423793

    0

    コンバータを実装し、@flashの答えに従ってEmployeeクラス(empのクラス)でequals()& hashCode()を実装しました。 XHTMLの

    パート:

    <my:dropdown label="Employee ID" id="emp" value="#{deliveryPort.emp}" required="false"> 
        <f:selectItem itemValue="#{null}" itemLabel="Selct One"/> 
        <s:selectItems value="#{deliveryPort.empList}" var="emp" label="# {emp.employeeId} #{ emp.nameFirst}"/> 
        <f:converter converterId="empConverter" /> 
    </my:dropdown> 
    

    EmployeeConverterクラス:私が持っていた

    public boolean equals(Object other) 
    { 
        return other instanceof Employee && (employeeId != null) ? employeeId.equals(((Employee) other).employeeId) : (other == this); 
    } 
    
    public int hashCode() 
    { 
        return employeeId != null ? this.getClass().hashCode() + employeeId.hashCode() : super.hashCode(); 
    } 
    
    public String toString() 
    { 
        return "Employee[" + employeeId + "," + nameFirst + "]"; 
    } 
    

    :従業員クラスの

    package mypackage.converters; 
    
    import javax.faces.component.UIComponent; 
    import javax.faces.context.FacesContext; 
    import javax.faces.convert.Converter; 
    import javax.faces.convert.FacesConverter; 
    
    @FacesConverter("empConverter") 
    public class EmployeeConverter implements Converter 
    { 
    
        public Object getAsObject(FacesContext context, UIComponent component, String value) 
        { 
         return value; 
        } 
    
        public String getAsString(FacesContext context, UIComponent component, Object value) 
        { 
         return value.toString(); 
        } 
    
    } 
    

    パート(おそらくEMPのクラスは、社員の文字列です)同様の問題。それは私のために働いた。

    関連する問題