I have a <h:selectBooleanCheckbox value="#{someBean.prop}">
where prop
is a property of type int
. Is it really not working straight away? Do I have to implement a custom converter to convert Boolean
to int
? Does anyone happen to have converter code for that at stock? I read that there is some bug in JSF 2.0 that prevents converters for <h:selectBooleanCheckbox>
to be processed. Can anyone confirm that?
I use MyFaces 2, Tomahawk and Tomcat 6.
The <h:selectBooleanCheckbox>
should, as its name say, be bound to a boolean
or Boolean
property. Nothing else. That it allows a converter
attribute is actually a bug in the spec. It should never have allowed it.
The problem is more in your model, why would you use an int
to represent a boolean state? Change your model to let it be a fullworthy boolean
.
If changing the model isn't an option for some reason (a 3rd party API, a stupid architect, or stupid business restrictions, etc), then wrap the model getter/setter in the backing bean like follows
public boolean isChecked() {
return someModel.getSomeInt() != 0;
}
public void setChecked(boolean checked) {
someModel.setSomeInt(checked ? 1 : 0);
}
and use it instead as <h:selectBooleanCheckbox value="#{bean.checked}" />
.
just to say MySQL doesn't have boolean as field type choice, and it could be an example for this need.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With