2016-06-12 5 views
-1

登録ページで、ユーザーが1つの役割のみを選択できるようにします。したがって、私はStringオブジェクトを返します<h:selectOneMenu<h:selectOneMenuh:selectOneMenuアイテムをカスタムJSFコンバータを使用してリスト<String>に変換する方法はありますか?

<h:selectOneMenu id="roles" value="#{register.user.roles}" required="true"> 
    <f:selectItem itemValue="EMPLOYEE" itemLabel="EMPLOYEE" /> 
    <f:selectItem itemValue="MANAGER" itemLabel="MANAGER" /> 
    </h:selectOneMenu> 

を使用しています。しかし、それをデータベースに保存するには、List<String>を取得する必要があります。ここでは、コンバータ私はどのように私は<h:selectOneMenuリターンStringListに変換する必要があり

@FacesConverter(value="aConverter") 
public class AConverter implements Converter { 

    @Override 
    public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) 
      throws ConverterException { 
     List<String> result = null; 
     result.add(arg1.toString()); 
     return result; 
    } 

    @Override 
    public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) 
      throws ConverterException { 
     return arg1.toString(); 
    } 

を使用していますか? 私はここにあなたが文字列の値を格納している NullPointerException

+0

1:selectコンポーネントであるarg1ではなく、arg2を使用します。 2: 'List result = null;'がヌルポインタ例外の原因です。ヌルの代わりに 'new ArrayList ()'のようなものを試してみてください。 –

+0

すべての組み合わせはどういう意味ですか?リストをヌルとして初期化し、それを次の行に追加すると、明らかにヌルポインタ例外が発生します。 –

答えて

1

<h:selectOneMenu id="roles" value="#{register.user.roles}" required="true">
を取得します。代わりにmanagedBeanで変数をArrayListとして作成し、JSPページで変数を使用してselectOneMenuの値を保存します。私はそれが動作する必要があり、あなたはコンバータが必要ではないと思う。

関連する問題