[ 
https://issues.apache.org/jira/browse/MYFACES-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12873926#action_12873926
 ] 

Martin Marinschek commented on MYFACES-2739:
--------------------------------------------

Hi Gentlemen,

I don't think it is a good idea to wait for 2.1. As slow as things currently 
run inside the big companies involved, we should rather have a 
context-parameter "strict-compatibility mode" and we should try to fix such 
issues (which are really issues hindering people using JSF properly) if this is 
not set to true.

best regards,

Martin

> 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/us...@myfaces.apache.org/msg55742.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to