[
https://issues.apache.org/jira/browse/MYFACES-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12873129#action_12873129
]
Leonardo Uribe commented on MYFACES-2739:
-----------------------------------------
The original spec issue:
https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=470
was reopened and it will be fixed on 2.1 release. Please do not change the
current behavior. The preffered solution for the user should be use a custom
converter.
> Pass through String values in EnumConverter.getAsString()
> ---------------------------------------------------------
>
> Key: MYFACES-2739
> URL: https://issues.apache.org/jira/browse/MYFACES-2739
> Project: MyFaces Core
> Issue Type: Improvement
> Components: JSR-314
> Affects Versions: 2.0.0
> Reporter: Jakob Korherr
> Assignee: Jakob Korherr
> Attachments: MYFACES-2739.patch
>
>
> From the related spec issue (#817 -
> https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=817):
> In every standard by-type converter in the JSF spec, except for the
> EnumConverter, the following code is present in getAsString():
> if (value instanceof String)
> {
> return (String) value;
> }
> Thus allowing String values to be used directly as the String representation
> of
> the type. This allows e.g. the following scenario for an Integer property in
> the
> managed bean to work, although "1234" beeing a String and not an Integer:
> <h:selectOneRadio value="#{myBean.inputInt}">
> <f:selectItem itemValue="1234" />
> </h:selectOneRadio>
> However the spec javadoc of the EnumConverter does not include this scenario
> and
> thus EnumConverter.getAsString() throws a ConverterException when providing a
> String value. This means that the following scenario won't work, although it
> should on my opinion (note that this currently does work with Mojarra because
> of
> an implementation issue - see [1] for details):
> <h:selectOneRadio value="#{myBean.inputEnum}">
> <f:selectItem itemValue="EnumConstant1" />
> </h:selectOneRadio>
> EnumConstant1 beeing a valid constant in the enum type referenced by
> #{myBean.inputEnum}. The only way to make this work right now is to use a
> ValueExpression that resolves to the needed enum constant, so something like
> this:
> <h:selectOneRadio value="#{myBean.inputEnum}">
> <f:selectItem itemValue="#{myBean.propertyThatResolvesToEnumConstant1}" />
> </h:selectOneRadio>
> This is not very straight forward IMHO, thus I think
> EnumConverter.getAsString()
> should pass through String-values just as every other standard by-type
> converter
> does.
> See also the discussion on the MyFaces user mailing list about this [2].
> [1] https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1694
> [2] http://www.mail-archive.com/[email protected]/msg55742.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.