这是我的问题,
我使用的是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;
}
}
因此,当我提交表格时,电子邮件和密码的摘要是正确的,但是如果选中或没有,则保留记录保持为假。 有什么想法吗?
<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 :(得分:0)
问题是当您更改复选框的值以使新值(已更改的值)不是Bean变量中的Bind或Set时。可能这是你用过的形式问题。
我有一个解决方案可能是你喜欢或不喜欢。 你可以使用:支持。
这是我的例子
如果你想在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);
}