加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

jsf – 绑定h:selectBooleanCheckbox值为int / Integer而不是bo

发布时间:2020-12-14 19:30:25 所属栏目:资源 来源:网络整理
导读:我有一个 h:selectBooleanCheckbox value =“#{someBean.prop}”其中,prop是int类型的属性.真的不行吗?我必须实现一个自定义转换器将Boolean转换为int吗?有没有人有库存的转换代码?我读到JSF 2.0中有一些错误,阻止了 h:selectBooleanCheckbox待处理.有
我有一个< h:selectBooleanCheckbox value =“#{someBean.prop}”>其中,prop是int类型的属性.真的不行吗?我必须实现一个自定义转换器将Boolean转换为int吗?有没有人有库存的转换代码?我读到JSF 2.0中有一些错误,阻止了< h:selectBooleanCheckbox>待处理.有人可以确认吗?

我使用MyFaces 2,战斧和Tomcat 6.

解决方法

< h:selectBooleanCheckbox>应该像其名称一样绑定到一个布尔或布尔属性.没有其他的.它允许转换器属性实际上是一个 bug in the spec.它不应该允许它.

您的模型中的问题更多,为什么要使用int来表示布尔状态?改变你的模型,让它成为一个完整的布尔值.

如果由于某种原因(第三方API,愚蠢的架构师或愚蠢的业务限制等)改变模型不是一个选择,那么将后面的bean中的模型getter / setter包装成如下

public boolean isChecked() {
    return someModel.getSomeInt() != 0;
}

public void setChecked(boolean checked) {
    someModel.setSomeInt(checked ? 1 : 0);
}

并将其替换为< h:selectBooleanCheckbox value =“#{bean.checked}”/&gt ;.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读