2012-12-23 2 views
1

내 managedbeans에 문제점이 있습니다. 그들 사이에 매개 변수를 전달할 수 없습니다. 다음은 XHTML 스 니펫입니다. 이것은 기본적으로 로그인 양식입니다. 그냥 빈을 다시 매개 변수를 보냅니다.managedbeans 프라임 사이의 매개 변수 전달

내 백킹 빈에서 사용자 입력이 데이터베이스 레코드와 일치하는지 확인하고 있습니다. 그렇다면 나는 그 사람이 시스템에 들어가게한다. 동시에, 나는 그의 전체 이름을 가지고 가고있다.

내 backbean는 :

@ManagedBean 
@RequestScoped 
public class LoginBean { 
    public String getUsername() { 
    return username; 
    } 
    public void setUsername(String username) { 
    this.username = username; 
    } 
    public String getPassword() { 
    return password; 
    } 
    public void setPassword(String password) { 
    this.password = password; 
    } 
    public String getMgs() { 
    return mgs; 
    } 
    public void setMgs(String mgs) { 
    this.mgs = mgs; 
    } 
    public String getFullname() { 
    return fullname; 
    } 
    public void setFullname(String fullname) { 
    this.fullname = fullname; 
    } 
    public String getOriginalURL() { 
    return originalURL; 
    } 
    public void setOriginalURL(String originalURL) { 
    this.originalURL = originalURL; 
    } 
    private String username; 
    private String password; 
    private String mgs; 
    private String fullname; 
    private String originalURL; 
    private static Logger log = Logger.getLogger(LoginBean.class.getName()); 
    public String check() throws Exception { 
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/projetakip", "root", ""); 
    Statement stmt = con.createStatement(); 
    String md5Pass = md5(password); 
    String SQL = "select * from users where username='" + username + "' and password='" + md5Pass + "'"; 
    ResultSet rs = stmt.executeQuery(SQL); 
    while (rs.next()) { 
     if (username.matches(rs.getString("username")) && md5Pass.matches(rs.getString("password"))) { 
     this.fullname = rs.getString("ad") + " " + rs.getString("soyad"); 
     return "panel?faces-redirect=true"; 
     } else { 
     FacesMessage msg = new FacesMessage("Yanlış kullanıcı adı/şifre."); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 
     return "index?faces-redirect=true"; 
     } 
    } 
    return "index?faces-redirect=true"; 
    } 
    public void getProductSetupData(ActionEvent event) { 
    FacesContext context = FacesContext.getCurrentInstance(); 
    Data data = context.getApplication().evaluateExpressionGet(context, "#{data}", Data.class); 
    } 

내가 원하는 다른 콩 (또는 페이지)에 fullName를 전달하는 것입니다. 이 변수를 콩 사이에 전달하려면 어떻게해야합니까?

미리 감사드립니다.

답변

7

BalusC는 communication in JSF 2.0에 대한 전체 블로그 게시물을 작성했으며, 이는 정말로 귀하의 시간에 가치가 있습니다. 를 주입 할 수

@ManagedProperty("#{loginBean.fullName}") 
private String fullName; 

을 그리고 또 다른, 어쩌면 더 적절한 : 그것을 읽고, 당신은 더 이상 그것을하는 방법, 그 중 하나는 다른 콩에, 재산 자체를 주입되고 있다는 것을 발견 할 것입니다 콩 자체 :

@ManagedProperty("#{loginBean}") 
private LoginBean loginBean; 
+0

안녕. 귀하의 링크가 깨졌습니다 – Fritz

+1

@Fritz 덕분에, 그것은 리디렉션하는 나를 위해 일했습니다 : http://balusc.omnifaces.org/2011/09/communication-in-jsf-20.html, 그래서이 위치로 변경했습니다 – elias

+0

나는 봅니다. 내 집에 PC도 했어. 직장에서 프록시 여야합니다. 감사! :디 – Fritz