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)
Mais quand je l'utiliser dans un composant composite avec le même Converter j'ai le message suivant :
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 ; } }
Voilà actuellement ce que j'ai fait dans mon composant compositeCannot convert paysConvert of type class java.lang.String to interface javax.faces.convert.Converter
Si possible de me donner une solution possible.
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>
Merci d'avance
Partager