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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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