我有一个<h:selectBooleanCheckbox value="#{someBean.prop}">
,其中prop
是类型为int
的属性。它真的不能马上工作吗?我必须实现自定义转换器才能将Boolean
转换为int
吗?有没有人碰巧在库存中有这个的转换器代码?我读到JSF 2.0中有一个错误,它阻止处理<h:selectBooleanCheckbox>
的转换器。有人能证实吗?
我使用MyFaces2、Tomahawk和Tomcat6。
正如其名称所说,<h:selectBooleanCheckbox>
应该绑定到boolean
或Boolean
属性。没有别的。它允许converter
属性实际上是规范中的一个错误。它不应该允许它
问题更多的是在您的模型中,为什么要使用int
来表示布尔状态?改变你的模型,让它成为一个完全有价值的boolean
。
如果由于某种原因(第三方API、愚蠢的架构师或愚蠢的业务限制等(,更改模型不是一种选择,那么将模型getter/setter包装在后台bean中,如下所示
public boolean isChecked() {
return someModel.getSomeInt() != 0;
}
public void setChecked(boolean checked) {
someModel.setSomeInt(checked ? 1 : 0);
}
并将其用作CCD_ 13。
只是说MySQL没有布尔值作为字段类型选择,它可能是满足这种需求的一个例子。
您可以在MySQL中将字段设置为tinyint
。实际上,问题是在创建布尔变量时获取方法名称。使用方法名称getChecked()
而不是isChecked()
。