簡體   English   中英

復選框JSF-不返回正確的值

[英]Checkbox JSF - not returning correct value

這是我的問題

我正在使用jsf,因此我的表單包含3個字段-h:inputText -h:inputSecret -h:selectBooleanCheckbox

Bean的結構如下:

    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>

問題是當您更改復選框的值以使新值(更改后的值)未在bean變量中綁定或設置時。 可能就是您使用過的表格問題。

我對此有一個解決方案,無論您喜不喜歡。 您可以使用a:support。

這是我的例子

如果您想在h:inputText中使用ajax支持,那么這里是示例

在XHTML文件中

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

在Bean文件中

Class UserBean   

private CustomerData customerData  = new CustomerData ();

public void codeValue(Boolean value){
        info("HERE IS YOUR VALUE : " + value);
        customerData.setKeepLogged(value); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM