Tôi rất mới đối với cả CDI và JSF và tôi đang cố chuyển đổi một số mã từ Richfaces 4 showcase để sử dụng CDI thay vì chú thích JSF.Thay thế CDI cho @ManagedProperty
Tôi hiểu rằng tôi có thể sử dụng @Named để thay thế @MangedBean và @Inject để thay thế @ManagedProperty. Nhưng tôi đang gặp rắc rối. Tôi đang cố gắng chuyển đổi ví dụ về Richfaces Tree một cách cụ thể.
tôi đã thực hiện những thay đổi sau đây và tôi biết điều này là không đúng vì vậy xin đừng sử dụng này:
//@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();
........
Sau đó, tôi thêm vào (và tôi không chắc chắn này là cần thiết):
@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...
và thay đổi:
//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3890828719623315368L;
@Named
private List<CDXmlDescriptor> cdsList;
tôi không thể tìm ra cách thích hợp để thay thế @ManagedProperty (value = "# {cd sParser.cdsList} ") sử dụng CDI?
này có vẻ giả Jboss và không Glassfish ...? – Thufir
@Thufir Đây là Java EE 6 và sẽ chạy trên tất cả các máy chủ phù hợp. –