Nach der Forschung, wie man benutzerdefinierte Konverter schreibt, hier ist die Lösung.
1. eine Java-Klasse, die javax.faces.convert.Converter;
public class ProjectConverter implements Converter{
@EJB
DocumentSBean sBean;
public ProjectConverter(){
}
public Object getAsObject(FacesContext context, UIComponent component, String value){
return sBean.getProjectById(value);
//If u look below, I convert the object into a unique string, which is its id.
//Therefore, I just need to write a method that query the object back from the
//database if given a id. getProjectById, is a method inside my Session Bean that
//does what I just described
}
public String getAsString(FacesContext context, UIComponent component, Object value)
{
return ((Project) value).getId().toString(); //--> convert to a unique string.
}
}
2. Registrieren Sie Ihren benutzerdefinierten Konverter in faces-config.xml
<converter>
<converter-id>projectConverter</converter-id>
<converter-class>org.xdrawing.converter.ProjectConverter</converter-class>
</converter>
3. So, jetzt innerhalb Primefaces Komponente implementieren, u tun converter="projectConverter"
einfach. Beachten Sie, dass projectConverter
die <convert-id>
ist, die ich gerade erstellt habe. So, um mein Problem oben zu lösen, tue ich das:
Interessante Frage. Leider weiß ich ehrlich nicht. Ich denke, du solltest das zu einer Frage machen und sehen, was die Gemeinde sagt. Wenn Sie dies zu einem Beitrag machen, geben Sie mir bitte den Link. Ich möchte das auch wissen. –