0
嘗試向我們的JSF 2應用程序添加功能以列出活動用戶(擁有活動會話),爲此我決定使用應用程序範圍的託管bean並存儲用戶列表,並在成功登錄時添加每個用戶列表。然後,我會從一個JSF頁面訪問活動的用戶列表(存儲在應用範圍的託管bean) - 僅如果我能想出如何解決以下問題:修改從另一個託管bean作爲託管屬性訪問的託管bean的私有對象屬性
應用範圍的bean:AppBean.java
@ManagedBean(name = "appBean")
@ApplicationScoped
public class AppBean implements java.io.Serializable {
private List<User> connectedUsers = new ArrayList<User>();
public AppBean() {
}
public List<User> getConnectedUsers() {
return connectedUsers;
}
public void setConnectedUsers(List<User> connectedUsers) {
this.connectedUsers = connectedUsers;
}
}
登錄豆:
@Named(value = "loginBean")
@SessionScoped
public class LoginBean implements Serializable {
@ManagedProperty("#{appBean}")
private AppBean appBean;
private User userInSession;
public LoginBean() {
}
public String authenticate() {
if (this.authClearsOut()) {
if (appBean != null)
appBean.getConnectedUsers().add(userInSession);
else System.out.println("appBean = null !!!!");
return "/next_screen.xhtml?redirect=true";
}
else return "/login.xhtml?authentication=failed";
}
public AppBean getAppBean() {
return appBean;
}
public void setAppBean(AppBean appBean) {
this.appBean = appBean;
}
}
現在有兩個問題在這裏: 1)appBean爲空,除非我改變LoginBean.java線6私人appBean appBean =新appBean(); 2)用戶userinSession不會被添加到(List)connectedUsers。
這裏有什麼問題?
我的猜測是,今天給出的這個答案適用於你的情況,以及:http://stackoverflow.com/a/10583350/870122 – perissf
由下面同一個人回答,但謝謝:) – Skyhan