我正在使用JSF和PrimeFaces開發應用程序。 我有一個託管的,會話範圍,有用戶名,密碼和isUserLoggedIn。 當我處理登錄組件時,它會起作用並相應地更改我的頁面。只要移動到另一頁,我就會丟失用戶名數據。我需要在整個應用程序中訪問用戶名。 有誰知道我爲什麼會丟失應該會話範圍的數據?爲什麼我要保留它從一頁而不是其他的? 由於JSF PrimeFaces丟失數據和會話
import authentication.AuthenticatorManagerLocal;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@SessionScoped
public class UserMB {
@EJB
private AuthenticatorManagerLocal authenticatorManager;
/** Creates a new instance of UserMB */
public UserMB() {
}
Boolean isUserLoggedIn;
String username;
String password;
String nickName;
public String getNickName() {
nickName="vanessa";
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Boolean getIsUserLoggedIn() {
return isUserLoggedIn;
}
public void setIsUserLoggedIn(Boolean isUserLoggedIn) {
this.isUserLoggedIn = isUserLoggedIn;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String authenticateUser(){
isUserLoggedIn= authenticatorManager.authenticateUser(username, password);
if(isUserLoggedIn)return "Home";
else
return null;
}
public void logout(){
isUserLoggedIn=false;
username="";
password="";
}
public String goToIndex(){
return "Index";
}
}
HOME具有
<p:commandButton value="SearchCB" action="#{expSearchResultsMB.search()}" ajax="false" />
的定製組件
expSearchResultsMB.search()發送到SearchResult所 其中我想顯示的用戶名
<h:outputLabel value="#{userMB.username}" />
我內部需要訪問用戶名和isU SerLoggedin在應用程序的每個頁面中。 當我檢查用戶是否登錄時,如果他是我會啓動Home。 首頁正確顯示用戶名,但是當我在家中使用searchCB時,登陸SearchResults頁面不顯示用戶名。
任何人都可以幫忙嗎?
顯然這個bean不是會話作用域,或者數據存儲不正確,或者會話維護不正確。如果沒有看到我們需要的最小代碼來重現您所面臨的問題,就很難找出真正的原因。提到確切的JSF impl/version和PrimeFaces版本也會有所幫助。 – BalusC 2012-01-12 12:19:51
我正在使用JSF 2和Primefaces 3.我需要訪問的bean是Session作用域。請讓我知道你是否需要其他細節。謝謝 – Viola 2012-01-12 12:23:36
代碼足以查看真實原因。但我更多的要求像「Mojarra 2.1.4」和「PrimeFaces 3.0 Final」這樣的確切的impl /版本。 – BalusC 2012-01-12 12:28:06