Флажок JSF - не возвращает правильное значение - PullRequest
0 голосов
/ 30 ноября 2011

Вот моя проблема,

Я использую 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;
  }
}

Поэтому, когда я отправляю форму, адрес электронной почты и пароль извлекаются правильно, но keepLogged остается ложным, независимо от того, отмечен или нет.Есть идеи?

<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>

1 Ответ

0 голосов
/ 09 декабря 2011

проблема заключается в том, что вы изменяете значение флажка, чтобы новое значение (измененное значение) не было Bind или Set в вашей переменной компонента.может быть, это ваша проблема с формой, которую вы использовали.

У меня есть одно решение, которое вам может понравиться или нет.вы можете использовать: support.

вот мой пример

, если вы хотите использовать поддержку ajax в h: inputText, тогда вот пример

вФайл XHTML

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

в файле EJB

Class UserBean   

private CustomerData customerData  = new CustomerData ();

public void codeValue(Boolean value){
        info("HERE IS YOUR VALUE : " + value);
        customerData.setKeepLogged(value); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...