[ 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.