2010-03-02 77 views
1

以下是由LoginBean調用的用於通過FacesContext從會話中添加和獲取User對象的實用程序類。Web應用程序實用程序類

該應用程序使用Spring。我應該使用註釋,還是在這種類中使用靜態方法是一種公認​​的做法?如果建議註釋,我應該使用@Component還是@Service?

// Annotate as Service/Component? 
public class WebUtils { 

// Add user object to session 
public void setUser(User user){ 
    FacesContext context = FacesContext.getCurrentInstance(); 
    context.getExternalContext().getSessionMap().put("user", user); 
} 

// Get user from session 
public User getUser(FacesContext context){ 
    if(context != null) 
     return (User) context.getExternalContext().getSessionMap().get("user"); 

    return null; 
} 
+1

沒有什麼。這是錯誤的方法。如果你想在會話範圍內有某些東西,只需使用會話範圍的bean。請參閱羅馬的正確答案。 – BalusC 2010-03-02 14:13:46

+0

感謝您的評論BalusC。我希望有一個網站分組最佳實踐:) – 2010-03-03 09:40:03

回答

3

我建議您在會話範圍內爲您的目的創建單獨的spring bean。

你可以稱之爲UserSupportUserController。這個bean應該有方法getUser(),setUser(),也許有些方法可以調用你的服務層。

+0

或'UserManager'。其他有用的方法是'login()','logout()'和'isLoggedin()'。 – BalusC 2010-03-02 14:11:50

1

我喜歡這樣的東西作爲Spring Bean,所以我可以注入任何我需要的東西。

然後,如果一個靜態方法現在適用於你,你可以在需要的時候再把它變成一個bean。