[
https://issues.apache.org/jira/browse/MYFACES-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12873110#action_12873110
]
Jakob Korherr commented on MYFACES-2739:
----------------------------------------
I think we could introduce a config param to enable the EnumConverter to pass
through String values until the issue was reviewed by the EG and the spec was
changed (which will maybe not happen until JSF 2.1).
I will provide a patch for this scenario.
> 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
>
> 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.