2014-10-08 114 views
1

我正在處理的應用程序使用會話作用域的巨大遺留bean。問題是我無法重構代碼,我需要一些屬性來請求作用域。有什麼辦法可以實現嗎?在會話作用域bean中請求作用域屬性JSF

+2

一個具體的例子可能會提高你的問題的質量,並爭取更多的答案 – kolossus 2014-10-08 23:51:34

回答

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 ; 
    } 
} 
相關問題