在会话范围的bean JSF中请求范围属性

时间:2014-10-08 08:59:55

标签: jsf jsf-2

我正在处理的应用程序使用会话作用域的巨大遗留bean。问题是我无法重构代码,我需要一些属性来请求作用域。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

你可以有一个@RequestScoped bean,使用@ManagedProperty注入遗留会话作用域bean并使用@PostConstruct来检索你需要的属性。

例如:

@ManagedBean(name = "legacyBean")
@SessionScoped
public class LegacyBean implements Serializable {
    private Object attr1;
    private Object attr2;

    // Getters and setters
}

@ManagedBean(name = "requestScopedBean")
@RequestScoped
public class RequestScopedBean {
    private Object requestAttr1;

    @ManagedProperty(value = "#{legacyBean}")
    private LegacyBean legacyBean;

    @PostConstruct
    private void init() {
        this.requestAttr1 = legacyBean.getAttr1();
    }

    public Object getRequestAttr1() {
        return this.requestAttr1 ;
    }
}