Я очень новичок в CDI и JSF, и я пытаюсь преобразовать код из витрины Richfaces 4, чтобы использовать CDI вместо аннотаций JSF.Замена CDI для @ManagedProperty
Я понимаю, что я могу использовать @Named для замены @MangedBean и @Inject для замены @ManagedProperty. Но у меня проблемы. Я пытаюсь преобразовать пример дерева Richfaces.
Я сделал следующие изменения и я знаю, что это не правильно, так пожалуйста, не используйте это:
//@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 (значение = «# {кд sParser.cdsList} ") с использованием CDI?
это, кажется, предположить, JBoss и не Glassfish ...? – Thufir
@Thufir Это Java EE 6 и должен работать на всех совместимых серверах. –