命名Bean未注入另一个命名bean

时间:2015-04-24 11:49:28

标签: jsf tomcat cdi weld

我正在尝试在另一个中注入一个命名bean。 当我尝试访问注入的bean的属性时,它返回null,这意味着注入失败。

这是第一个Bean:

@Named
@SessionScoped
public class FirstMBean {

    String caracter;
      ..........

public String goToNext(){ 
String caracter=FacesContext.getCurrentInstance().getExternalContext().
                getRequestParame‌​terMap().get("caracter"); this.caracter=caracter;
 System.out.println("the selected caracteris"+ caracter);
 return "/pages/next?faces-redirect=true"; }

}

第二个命名bean:

@Named
@SessionScoped
public class SecondMBean {

    @Inject
    FirstMBean firstMBean ;
    String injectedCaracter ;


    @PostConstruct
    public void init() {

        this.injectedCaracter = this.firstMBean.getCaracter();
        System.out.println("injectedCaracter ----" + this.injectedCaracter);

    }

在我的.xhtml页面中:

    <p:commandButton value="see caracter" action="#{firstMBean.goToNext}"> 
        <f:param name="caracter" value="#{caracter}" /> 
    </p:commandButton>

请注意我使用tomcat服务器,我添加了WELD以支持CD​​I,当我将范围放到ApplicationScoped时,一切正常。

0 个答案:

没有答案