Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.0.0-incubating-core
-
None
-
None
Description
I use in a page this tag:
<af:selectBooleanCheckbox label="test boolean"
value="#
"
converter="#
"/>
I have a String representation of boolean in my bean (getBoolean return "0" if false end "1" if true)
My converter convert in getAsString "0" into "false" and "1" into "true" and vice versa (getAsObject).
Checkbox is never checked when getBoolean return "1", so I have debugged my application
in converter:
- getAsString is never called.
- getAsObject is called normally when my form is submitted String param in getAsObject is "false" if my checkbox isn't checked and "true" if my checkbox is checked.
selectBooleanCheckbox working isn't "symetric" so I think it is a trinidad bug.
I have checked source code in
SimpleSelectBooleanRenderer.encodeAllAsElement
and SimpleSelectBooleanRenderer.encodeAllAsNonElement
I have replaced code
Object value = getSubmittedValue(bean);
if ( value == null)
value = getValue(bean);
by this one
Object value = getSubmittedValue(bean);
if ( value == null)
if(!(value instanceof Boolean))
{ value=Boolean.valueOf(getConvertedString(context, component, bean)); }this "patch" works in af:selectBooleanCheckbox value can be boolean or String "true " or "false" and converter can be used to convert custom boolean representation, but I don't know if it is right place to correct this trinidad bug