2011-04-29 56 views
1

嗨全部
我使用的是JSF 2.0,我有兩個bean UserBean(Request Scope)和UserInfoBean(Session Scope)。 我想知道如何從UserBean的一個方法(Request Scope)初始化UserInfoBean,以便我可以從任何地方訪問它。
從請求scop bean初始化會話bean

我也想知道哪些性能更​​好1,把bean作爲會話bean 2,在會話中分別放置不同的變量。
非常感謝

回答

3

注入會話範圍的bean作爲請求的@ManagedProperty作用域bean。這樣它可以在請求作用域bean中的所有操作方法中使用。

例如

@ManagedBean 
@SessionScoped 
public class UserManager { 

    private User user; 

    // ... 
} 

@ManagedBean 
@RequestScoped 
public class Login { 

    private String username; 
    private String password; 

    @EJB 
    private UserService userService; 

    @ManagedProperty(value="#{userManager}") 
    private UserManager userManager; 

    public String submit() { 
     User user = userService.find(username, password); 

     if (user != null) { 
      userManager.setUser(user); 
      return "home"; 
     } else { 
      addMessage("Unknown login, try again"); 
      return null; 
     } 
    } 

    // ... 
}