Ich bin sehr neu sowohl CDI und JSF, und ich versuche, etwas Code von Richfaces 4 Showcase zu konvertieren, CDI anstelle von JSF-Annotationen zu verwenden.CDI-Ersatz für @ManagedProperty
Ich verstehe, dass ich @named verwenden kann, um @MangedBean und @Inject zu ersetzen @ManagedProperty ersetzen. Aber ich habe Probleme. Ich versuche, das Richfaces-Tree-Beispiel speziell zu konvertieren.
Ich habe folgende Änderungen vorgenommen und ich weiß, dass dies so nicht korrekt ist bitte diese nicht verwenden:
//@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();
........
Dann habe ich (und ich bin nicht sicher, ob dies erforderlich ist):
@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...
und geändert:
//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3890828719623315368L;
@Named
private List<CDXmlDescriptor> cdsList;
ich kann nicht die richtige Art und Weise herauszufinden, @ManagedProperty zu ersetzen (value = „# {cd sParser.cdsList} ") mit CDI?
dies scheint Jboss zu übernehmen und nicht ... Glassfish? – Thufir
@Thufir Dies ist Java EE 6 und sollte auf allen kompatiblen Servern ausgeführt werden. –