J'essaie de convertir du code de la vitrine Richfaces 4 pour utiliser CDI au lieu des annotations JSF.
Je comprends que je peux utiliser @Named
pour remplacer @MangedBean
y @Inject
pour remplacer @ManagedProperty
. Mais je rencontre des difficultés. J'essaie de convertir l'exemple RichFaces Tree en particulier.
J'ai apporté les modifications suivantes et je sais que ce n'est pas correct, alors ne l'utilisez pas :
//@ManagedBean
//@ViewScoped
@Named
@SessionScoped
public class TreeBean implements Serializable {
private static final long serialVersionUID = 1L;
// @ManagedProperty(value = "#{cdsParser.cdsList}")
// private List<CDXmlDescriptor> cdXmlDescriptors;
@Inject
private Instance<CDXmlDescriptor> cdXmlDescriptors;
// I also Tried :
// @Inject
// private CDParser cdsParser;
// private List<CDXmlDescriptor> cdXmlDescriptors = cdsParser.getCdsList();
........
J'ai ensuite ajouté (et je ne suis pas sûr que cela soit nécessaire) :
@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...
et a changé :
//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3890828719623315368L;
@Named
private List<CDXmlDescriptor> cdsList;
Je n'arrive pas à trouver la bonne façon de remplacer @ManagedProperty(value = "#{cdsParser.cdsList}")
en utilisant le CDI ?