2011-11-30 4 views
0

正しい値を返さないことは私の問題である、チェックボックスJSF - ここ

私のフォームは、3つのフィールド -h含まれていて、私は、JSFを使用しては:mのinputText -h:inputSecret -h:selectBooleanCheckbox

豆の構造は以下の通りです:

public class UserBean { 

     private CustomerData customer; 

public CustomerData getCustomer() { 
     return customer; 
    } 

    public CustomerData getCustomer() { 
     return customer; 
    } 
} 

CustomerBean 


public class CustomerData implements Serializable { 

    String email = null; 
    String password = null; 
    Boolean keepLogged = false; 

    public CustomerData() { 
    } 

    public String getEmail() { 
    return email; 
    } 

    public void setEmail(String email) { 
    this.email = email; 
    } 

    public Boolean getKeepLogged() { 
    return keepLogged; 
    } 

    public void setKeepLogged(Boolean keepLogged) { 
    this.keepLogged = keepLogged; 
    } 

    public String getPassword() { 
    return password; 
    } 

    public void setPassword(String password) { 
    this.password = password; 
    } 
} 

私はフォームを提出すると、電子メールとパスワードは正しく引用されますが、keepLo​​ggedはチェックされているか否かにかかわらずfalseになりません。 アイデアここで

<h:selectBooleanCheckbox styleClass="checkbox" id="remember" value="#{UserBean.customer.keepLogged}" title="#{res.CommonRememberMeTitle}"/> 

もう少しコード

   <h:inputText value="#{UserBean.customer.email}" binding="#{email}" id="email" tabindex="1" maxlength="250">    
       </h:inputText>ck 

       <h:inputSecret value="#{UserBean.customer.password}" binding="#{password}" id="password" tabindex="2" maxlength="50" required="true">      
       </h:inputSecret> 
      </span> 
+0

'keepLo​​gged'にはCustomerBeanのgetterメソッドとsetterメソッドがありますか?ブール値のゲッター名は 'isKeepLo​​gged'のようにする必要があります。 – merveotesi

+0

@tuxi:ゲッターはデータの送信にはあまり関係しませんが、セッターは確実に存在します。そうでなければ、OPは 'PropertyNotWritableException'に直面します。 – BalusC

+0

@brakebg:これまでに投稿されたコードはうまく見えます。あなたの問題は他の場所で発生しています。最小限の可能な ''スニペットとコマンドアクションのメソッドを投稿して、同じ問題を再現するためにコピーアンドペーストできないようにしてください。 – BalusC

答えて

0

問題は、新しい値が(値を変更)にバインドしたり、豆の変数に設定されていないように、あなたは、チェックボックスの値を変更したときです。あなたが使ったフォームの問題かもしれません。

私はそれがあなたの好きかもしれない1つの解決策があります。 :aサポートを使用することができます。豆でXHTMLファイル内のinputTextは、その後、ここでの例である

<h:selectBooleanCheckbox 
     value="#{UserBean.customerData.keepLogged}"> 
     <a:support event="onclick" limitToList="true" 
     action="#{UserBean.codeValue(UserBean.customerData.keepLogged)}"/> 
</h:selectBooleanCheckbox> 

ファイル:ここ

あなたが時間にAJAXサポートを使用したい場合は私の例

です

Class UserBean 

private CustomerData customerData = new CustomerData(); 

public void codeValue(Boolean value){ 
     info("HERE IS YOUR VALUE : " + value); 
     customerData.setKeepLogged(value); 
} 
関連する問題