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

前端之家收集整理的这篇文章主要介绍了jsf – 绑定h:selectBooleanCheckbox值为int / Integer而不是boolean / Boolean前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个< h:selectBooleanCheckBox value =“#{someBean.prop}”>其中,prop是int类型的属性.真的不行吗?我必须实现一个自定义转换器将Boolean转换为int吗?有没有人有库存的转换代码?我读到JSF 2.0中有一些错误,阻止了< h:selectBooleanCheckBox>待处理.有人可以确认吗?

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

解决方法

@H_403_7@ < 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 ;.

原文链接:https://www.f2er.com/html/224408.html

猜你在找的HTML相关文章