I have a poject with JSF 2.0 Facelets. I have several EnumConverter classe to bind enums directly to the view like:
[code]
@FacesConverter(value="AusbildungsartConverter")
public class AusbildungsartConverter extends EnumConverter {
public AusbildungsartConverter() {
super(Ausbildungsart.class);
}
}
[/code]
I use them in <h:selectOneMenu>
and that works just fine.
However after I have added a simple <h:inputText without an converter I cannot enter any free text. Even on a new test page:
[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>
[/code]
After entering 'blubber' I get the conversion error
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]
[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;
}
}
[/code]
I have NO faces-config.xml
Does anybody have an idea what might cause this behavior?
This is absolutely driving me nuts.
Thanks,
Hans
[Message sent by forum member 'hmrupp']
http://forums.java.net/jive/thread.jspa?messageID=486333