jakartaee / faces

Jakarta Faces
Other
107 stars 55 forks source link

EnumConverter.getAsString() does not allow String values #817

Open eclipse-faces-bot opened 14 years ago

eclipse-faces-bot commented 14 years ago

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}

">

</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}">

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

Environment

Operating System: All Platform: All

Affected Versions

[2.0]

eclipse-faces-bot commented 5 years ago
eclipse-faces-bot commented 14 years ago

@glassfishrobot Commented Reported by jakobkorherr

eclipse-faces-bot commented 14 years ago

@glassfishrobot Commented @edburns said: sheetalv

eclipse-faces-bot commented 14 years ago

@glassfishrobot Commented rogerk said: triage

eclipse-faces-bot commented 13 years ago

@glassfishrobot Commented @edburns said: Bulk assign all of Sheetal's spec issues to me.

eclipse-faces-bot commented 10 years ago

@glassfishrobot Commented @edburns said: Set priority to baseline ahead of JSF 2.3 triage. Priorities will be assigned accurately after this exercise.

eclipse-faces-bot commented 10 years ago

@glassfishrobot Commented @manfredriem said: Setting priority to Minor

eclipse-faces-bot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA JAVASERVERFACES_SPEC_PUBLIC-817