Jestem bardzo nowy zarówno dla CDI, jak i JSF, i próbuję przekonwertować kod z prezentacji Richfaces 4, aby użyć CDI zamiast adnotacji JSF.Zastępowanie CDI dla @ManagedProperty
Rozumiem, że mogę użyć @Named do zastąpienia @MangedBean i @Inject w celu zastąpienia @ManagedProperty. Ale mam kłopoty. Próbuję specjalnie przekonwertować przykład drzewa Richfaces.
Mam dokonała następujących zmian i wiem, że to nie jest poprawna, więc proszę nie używać tego:
//@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();
........
Potem dodał (a nie jestem pewien, że to jest potrzebne):
@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...
i zmianie:
//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3890828719623315368L;
@Named
private List<CDXmlDescriptor> cdsList;
nie mogę dowiedzieć się właściwy sposób zastąpić @ManagedProperty (value = „# {cd sParser.cdsList} ") używając CDI?
to wydaje się zakładać, JBoss i nie GlassFish ...? – Thufir
@Thufir Jest to Java EE 6 i powinien działać na wszystkich zgodnych serwerach. –