首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止selectBooleanCheckbox更改值

防止selectBooleanCheckbox更改值
EN

Stack Overflow用户
提问于 2014-10-07 21:04:00
回答 1查看 1.3K关注 0票数 1

我有一个h:selectBooleanCheckbox,我想在允许它改变它的值之前在托管bean中验证它。

代码语言:javascript
复制
<h:selectBooleanCheckbox id="attr" value="#{handler.attribute}" onclick="submit()" 
    immediate="true"  valueChangeListener="#{handler.changeAttributeValue}" />

public String changeAttributeValue(ValueChangeEvent event) {
    if(condition)
        attribute=false;
return "home";
}

因此,我想要做的是,如果条件为真,则防止该属性变为真。发生的情况是,该属性最初被设置为false,但在该方法退出后,它再次变为true。

EN

回答 1

Stack Overflow用户

发布于 2014-10-07 21:38:30

小心使用immediate="true"。提交的值不会被您的组件接受,而是保留在selectBooleanCheckbox- attribute的组件模型中,因此下次将再次选中该框。试试immediate=false。请确保您的托管Bean为@SessionScoped,否则它会在您重新加载/重定向页面时忘记您的属性。

更帅的是:

代码语言:javascript
复制
<h:selectBooleanCheckbox id="attr" value="#{handler.attribute}">
    <f:ajax event="change" render="@this" listener="#{handler.changeAttributeValue()}" />
</h:selectBooleanCheckbox>

public void changeAttributeValue() {
if(condition)
    attribute=false;
return;
}

(我不能检查正确的代码,但经常使用它)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26236719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档