I try to register a custom converter for my business model enums in Seam 2.0.1.GA. This works fine until I do use facelets EL to access my properties.
That's my enum:
public enum Gender { MALE, FEMALE }
@Name("genderConverter") @org.jboss.seam.annotations.faces.Converter(forClass = Gender.class) public class GenderConverter implements Converter, Serializable { private static final long serialVersionUID = 3237852262587078904L; public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String string) { // TODO return Gender.MALE; } public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object object) { String retVal = null; if (object instanceof Enum) { final Enum<Gender> instance = (Enum<Gender>) object; final String resourceKey = instance.name(); // final String resourceKey = instance.getClass().getName() + "." + // instance.name(); try { retVal = ResourceBundle.instance().getString(resourceKey); } catch (MissingResourceException e) { // Ignore System.out.println(e); } if ("".equals(retVal)) { retVal = instance.name(); } } System.out.println("retrieved gener " + retVal); return retVal; } }
<div class="entry"> <div class="label">Geschlecht:</div> <div class="output"><h:outputText value="#{member.gender}"/></div> </div>
<div class="entry"> <div class="label">Gender:</div> <div class="output">#{member.gender}</div> </div>
I don't think converters are applied when using inline EL like that