2016-06-28 50 views
0

後,我有作爲managedproperty另一個bean一個bean:Primefaces新的bean實例導航

public class Bean1 
{ 
    @ManagedProperty(value = "#{bean2}") 
    private Bean2 bean2; 

    .... 
} 

Bean2正確創建的,但導航從bean1.xhtml到bean2.xhtml 創建Bean2的另一個實例,所以我失去了從Bean1設置的每個參數。 Bean1和Bean2是@ViewScoped。

我在哪裏錯了?

+0

看到我更新的ans –

回答

0

Bean1.java

import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ManagedProperty; 
import javax.faces.bean.SessionScoped; 
import javax.faces.view.ViewScoped; 

@ManagedBean 
@ViewScoped 
public class Bean1 { 

    @ManagedProperty(value = "#{bean2}") 
    private Bean2 bean2; 

    @PostConstruct 
    public void init() { 
     System.out.println("in bean one...."); 
    } 

    public Bean2 getBean2() { 
     return bean2; 
    } 

    public void setBean2(Bean2 bean2) { 
     this.bean2 = bean2; 
    } 

    public String changetoview() { 
     return "bean2"; 
    } 
} 

Bean2.java

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 
import javax.faces.view.ViewScoped; 

@ManagedBean 
@ViewScoped 
public class Bean2 { 

    private String nameOfBean; 

    public String getNameOfBean() { 
     return nameOfBean; 
    } 

    public void setNameOfBean(String nameOfBean) { 
     this.nameOfBean = nameOfBean; 
    } 

} 

bean1.xhtml

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html"> 
<h:head> 
    <title>bean1</title> 
</h:head> 
<h:body> 
    <h:form> 
     <h:inputText value="#{bean1.bean2.nameOfBean}"></h:inputText> 
     <h:commandButton action="#{bean1.changetoview}" 
      value="Login"></h:commandButton> 
    </h:form> 
</h:body> 
</html> 

Bean2.xhmtl

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html"> 
<h:head> 
    <title>bean2</title> 
</h:head> 
<h:body> 
    <h:form>dd 
     <h:outputLabel value="#{bean2.nameOfBean}"></h:outputLabel> 
    </h:form> 
</h:body> 
</html> 

它在我的工作中,即使在我將@ViewScope更改爲@SessionScope時也是如此。 如果您需要更多信息,請使用有關您的代碼的更多信息重寫您的問題。謝謝