JSF Composants composites avec un Converter
Bonjour,
Quand j'utiliser mon code directement dans ma page sa marche très bien avec le converter "la propriété suivante : converter="paysConvert" bien sûr "paysConvert" pointe sur ma classe "PaysConverter" (il est simple n'a rien de particulier, en même temps ces pas le probléme)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| @FacesConverter(forClass=PaysConverter.class ,value="paysConvert")
public class PaysConverter implements Converter{
/** Creates a new instance of PaysConverter */
public PaysConverter() { }
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return String.valueOf( ((Pays) value).getId() ) ;
}
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Pays pays = new Pays();
pays.setId(value);
return pays ;
}
} |
Mais quand je l'utiliser dans un composant composite avec le même Converter j'ai le message suivant :
Citation:
Cannot convert paysConvert of type class java.lang.String to interface javax.faces.convert.Converter
Voilà actuellement ce que j'ai fait dans mon composant composite
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
<?xml version='1.0' encoding='UTF-8' ?>
<!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:composite="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="titre" required="true" ></composite:attribute>
<composite:attribute name="valeur" required="true"></composite:attribute>
<composite:attribute name="labelSource" required="true" ></composite:attribute>
<composite:attribute name="labelTarget" required="true"></composite:attribute>
<composite:attribute name="converterPickList" required="true" ></composite:attribute>
<composite:attribute name="champ_id" required="false"></composite:attribute>
<composite:attribute name="champ_libelle" required="false" ></composite:attribute>
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h3>#{cc.attrs.titre}</h3>
<p:pickList value="#{cc.attrs.valeur.dualList}"
var="item" iconOnly="true" effect="bounce"
itemValue="#{item}" itemLabel="#{item.id} -- #{item.libelle}"
converter="#{cc.attrs.converterPickList}"
showSourceControls="true" showTargetControls="true">
<f:facet name="sourceCaption">#{cc.attrs.labelSource}</f:facet>
<f:facet name="targetCaption">#{cc.attrs.labelTarget}</f:facet>
</p:pickList>
</composite:implementation>
</html> |
Si possible de me donner une solution possible.
Merci d'avance
[JSF2.0] Composants composites avec un Converter
Je reformule mon problème en question très simplement :
Est-il possible de convertir le résultat d'une EL un String a un autre type ? (dans mon cas a une objet d'une classe Converter)
Si sa existe comment en peut le faire sinon comment je peux contournés ce problème.
Merci