【发布时间】:2012-04-13 15:15:44
【问题描述】:
我正在尝试将 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;
我无法找出使用 CDI 替换 @ManagedProperty(value = "#{cdsParser.cdsList}") 的正确方法?
【问题讨论】:
标签: jsf cdi inject managed-property