JBoss 6 M5 (out of the box,)
Ich habe ein Projekt mit JSF 2.0 Facelets. Darin benutze ich mehere EnumConverter Klassen um Enums direkt an die View zu binden. Z.B.
Ich benuetze sie in <h:selectOneMenu>
und das funktioniert auch.
Nachdem ich jedoch ein <h:inputText ohne Converter hinzugefügt habe, kann ich dort keinen freien Text eingeben. Auch nicht in einer ganz neuen Testseite:
Wenn ich 'blubber' eingebe, bekomme ich den conversion error
j_idt4:fasel: 'blubber' must be convertible to an enum from the enum that contains the constant 'blubber'.
Managed Bean:
Ich habe keine faces-config.xml
Hat irgendjemand eine Vorstellung was dies bewirken könnte?
Danke
Hans
Ich habe ein Projekt mit JSF 2.0 Facelets. Darin benutze ich mehere EnumConverter Klassen um Enums direkt an die View zu binden. Z.B.
Code:
@FacesConverter(value="AusbildungsartConverter") public class AusbildungsartConverter extends EnumConverter { public AusbildungsartConverter() { super(Ausbildungsart.class); } }
und das funktioniert auch.
Nachdem ich jedoch ein <h:inputText ohne Converter hinzugefügt habe, kann ich dort keinen freien Text eingeben. Auch nicht in einer ganz neuen Testseite:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:body> <h:form> <h:inputText id="fasel" value="#{berechnung.aez.fasel}" /> <h:message for="fasel"/> <br /> <h:commandButton value="Submit" action="submit()"/> </h:form> </h:body> </html>
j_idt4:fasel: 'blubber' must be convertible to an enum from the enum that contains the constant 'blubber'.
Managed Bean:
Code:
package beans; @ManagedBean(name="berechnung") @SessionScoped public class Berechnung { @EJB private BafoegRechner bafoegRechner; @EJB private AezDAO aezDAO; private AenderungszeitraumFlat aenderungszeitraumFlat = new AenderungszeitraumFlat(); private BerechnungErgebnis berechnungErgebnis; private UnterhaltsberechtigterP unterhaltsberechtigter; public AenderungszeitraumFlat getAez() { return aenderungszeitraumFlat; } public void setAez( AenderungszeitraumFlat aenderungszeitraumFlat) { this.aenderungszeitraumFlat = aenderungszeitraumFlat; } public BerechnungErgebnis getErgebnis() { return berechnungErgebnis; } public void setErgebnis(BerechnungErgebnis berechnungErgebnis) { this.berechnungErgebnis = berechnungErgebnis; } public String doBerechnung() { Aenderungszeitraum aenderungszeitraum = this.aenderungszeitraumFlat.buildAenderungszeitraum(); berechnungErgebnis = bafoegRechner.berechnneFoerderung(aenderungszeitraum); return "ergebnis.xhtml"; } public void save() { aezDAO.saveAez(aenderungszeitraumFlat); aenderungszeitraumFlat = new AenderungszeitraumFlat(); } public List<Long> getIds() { List<Long> ids = aezDAO.getIds(); return ids; } public List<Description> getDescriptions() { List<Description> descriptions = aezDAO.getDescriptions(); return descriptions; } /** * Drop Down Menü für Rechtliche Stellung Ausbildungstätte * @return */ public SelectItem[] getRechtsStellungSelectOne() { SelectItem[] items = new SelectItem[RechtlicheStellungAusbildungsstaette.values().length]; int i=0; for (RechtlicheStellungAusbildungsstaette rechtlicheStellungAusbildungsstaette : RechtlicheStellungAusbildungsstaette.values()) { items[i++] = new SelectItem(rechtlicheStellungAusbildungsstaette, rechtlicheStellungAusbildungsstaette.toString()); } return items; } // More stuff like that }
Code:
@Entity @NamedQueries({ @NamedQuery(name="selectIds", query="SELECT aez.id FROM AenderungszeitraumFlat aez"), @NamedQuery(name="selectDesc", query="SELECT NEW glue.Description(aez.id, aez.beschreibung) FROM AenderungszeitraumFlat aez"), @NamedQuery(name="selectDescWorkaround", query="SELECT aez.id, aez.beschreibung FROM AenderungszeitraumFlat aez") }) public class AenderungszeitraumFlat { @Id @GeneratedValue private long id; private String beschreibung; private String fasel; public String getFasel() { return fasel; } public void setFasel(String fasel) { this.fasel = fasel; } }
Ich habe keine faces-config.xml
Hat irgendjemand eine Vorstellung was dies bewirken könnte?
Danke
Hans