Замена CDI для @ManagedProperty

Я новичок и в CDI, и в JSF, и я пытаюсь преобразовать некоторый код из демонстрации Richfaces 4 для использования CDI вместо JSF. аннотации.

Я понимаю, что могу использовать @Named для замены @MangedBean и @Inject для замены @ManagedProperty. Но у меня проблемы. Я пытаюсь преобразовать пример Richfaces Tree специально.

Я внес следующие изменения, и я знаю, что это неправильно, поэтому, пожалуйста, не используйте это:

//@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();

........

Затем я добавил (и я не уверен, что это нужно):

@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...

и изменил:

//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 3890828719623315368L;
    @Named
    private List<CDXmlDescriptor> cdsList;

Я не могу понять, как правильно заменить @ManagedProperty(value = "#{cdsParser.cdsList}") с помощью CDI?

6
задан Matt Handy 30 March 2012 в 07:32
поделиться