Servus,
in meiner Webanwendung habe ich ein Problem.
Aufbau:
Hibernate 3.6.7 unter Spring 3.1.3 unter JSF2.1.3
Ich habe eine faces-config, in der ich einen Converter konfiguriere
[XML] <converter>
<description>Konverter für Rechtsstellungen</description>
<converter-id>rechtsstellungsConverter</converter-id>
<converter-class>de.backend.converter.RechtsstellungsConverter</converter-class>
</converter>[/XML]
und ich habe einen Converter, der eine Spring-Bean ist. Er ist in einem Bereich, der von scan-package für Annotationbasierte Config gefunden wird:
das ganze wird dann in einem SelectOneMenu benutzt:
[XML]
<tr>
<td><h
utputLabel value="Rechtsstellung:" for="rechtsstellung" /></td>
<td><h:selectOneMenu id="rechtsstellung" value="#{anlegeController.stiftung.rechtsstellung}"
title="Rechtsstellung" required="true"
requiredMessage="The Rechtsstellung field is required."
converter="rechtsstellungsConverter">
<f:selectItems value="#{anlegeController.rechtsstellungsListe}" var ="_rechtsstellung" itemLabel="#{_rechtsstellung.bezeichnung}"
itemValue="#{_rechtsstellung}" />
</h:selectOneMenu></td>
<td> <h
utputLabel value="Kurzbeschreibung:" for="kurzbeschreibung" /></td>
<td><h:inputText id="kurzbeschreibung" value="#{anlegeController.stiftung.kurzbeschreibung}" title="Kurzbeschreibung" /></td>
</tr>
[/XML]
Probleme:
soo... fällt einem was dazu ein?
in meiner Webanwendung habe ich ein Problem.
Aufbau:
Hibernate 3.6.7 unter Spring 3.1.3 unter JSF2.1.3
Ich habe eine faces-config, in der ich einen Converter konfiguriere
[XML] <converter>
<description>Konverter für Rechtsstellungen</description>
<converter-id>rechtsstellungsConverter</converter-id>
<converter-class>de.backend.converter.RechtsstellungsConverter</converter-class>
</converter>[/XML]
und ich habe einen Converter, der eine Spring-Bean ist. Er ist in einem Bereich, der von scan-package für Annotationbasierte Config gefunden wird:
Java:
package de.backend.converter;
import de.model.entities.Rechtsstellung;
import de.model.persistence.db.daos.RechtsstellungsDao;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.apachecommons.CommonsLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Getter
@Setter
@CommonsLog
@Service("rechtsstellungsConverter")
public class RechtsstellungsConverter implements Converter {
@Autowired
private RechtsstellungsDao rechtsstellungsDao;
@Transactional
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return rechtsstellungsDao.findByBezeichnung(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
Rechtsstellung rs = (Rechtsstellung) value;
return rs.getBezeichnung();
}
}
das ganze wird dann in einem SelectOneMenu benutzt:
[XML]
<tr>
<td><h
<td><h:selectOneMenu id="rechtsstellung" value="#{anlegeController.stiftung.rechtsstellung}"
title="Rechtsstellung" required="true"
requiredMessage="The Rechtsstellung field is required."
converter="rechtsstellungsConverter">
<f:selectItems value="#{anlegeController.rechtsstellungsListe}" var ="_rechtsstellung" itemLabel="#{_rechtsstellung.bezeichnung}"
itemValue="#{_rechtsstellung}" />
</h:selectOneMenu></td>
<td> <h
<td><h:inputText id="kurzbeschreibung" value="#{anlegeController.stiftung.kurzbeschreibung}" title="Kurzbeschreibung" /></td>
</tr>
[/XML]
Probleme:
- der Converter bekommt die DAO nicht injiziert (die injizierung funktioniert aber in einem Service - der Service wird auch nicht in den Converter injiziert, hab ich auch schon versucht)
- die Mehode public Object getAsObject(FacesContext context, UIComponent component, String value) bekommt als "String value" einen völlig falschen String übergeben (einen, aus einem anderen Feld)
soo... fällt einem was dazu ein?