Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在faces-config.xml中更改之前初始化的bean_Java_Jsf_Faces Config - Fatal编程技术网

Java 在faces-config.xml中更改之前初始化的bean

Java 在faces-config.xml中更改之前初始化的bean,java,jsf,faces-config,Java,Jsf,Faces Config,我用这种方式在faces-config.xml中初始化这个bean public class MyBean { private Integer [] myField; public Integer [] getMyField() { return myField; } public void setMyField(Integer [] myField) { this.myField = myField; } 但这是不可

我用这种方式在faces-config.xml中初始化这个bean

public class MyBean {
    private Integer [] myField;


    public Integer [] getMyField() {
        return myField;
    }
    public void setMyField(Integer [] myField) {
        this.myField = myField;
    }
但这是不可能的,
Integer[]results=myBean.getMyfield()
给我一个
null
。无论如何,在我的应用程序的接口中,我可以看到bean已正确初始化,因为它包含值6、12和24。
有什么帮助吗??
提前感谢

当您使用
new
实例化
MyBean时,它不会查找Faces配置。它将简单地使用构造函数创建一个对象

如果您使用的是
jsf2.0
makebean,那么在使用

        MyBean myBean = new MyBean();
        Integer [] results = myBean.getMyfield();
        //Change the value of this array
        visualizationBean.setResultsPerPage(results);
并从作用域映射中检索
Bean
实例。如果它的应用程序范围是bean

@ManagedBean(eager=true)
更新:

你的托管bean应该是这样的

MyBean mb = (MyBean)FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("beanName");
如果您只想在另一个bean中使用您的bean,那么正如BalusC所建议的,只需注入它并获取填充值,而不使用
new

例如:如果您希望在
SomeOtherBean
中弹出您的
MyBean
,那么

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(eager="true")
@RequestScoped
public class MyBean {
更新

对于JSF1.2,没有注释,您需要配置
faces config.xml
,如下所示

@ManagedBean()
@RequestScoped
public class SomeOtherBean {
   @ManagedProperty(value="#{myBean}") 
   private MyBean myBean;
   //getters & setters of myBean

蚕豆
com.example.my.MyBean
要求
其他人
com.example.some.AnotherBean
要求
蚕豆
#{myBean}

当您使用
new
实例化
MyBean
时,它不会查找Faces配置。它将简单地使用构造函数创建一个对象

如果您使用的是
jsf2.0
makebean,那么在使用

        MyBean myBean = new MyBean();
        Integer [] results = myBean.getMyfield();
        //Change the value of this array
        visualizationBean.setResultsPerPage(results);
并从作用域映射中检索
Bean
实例。如果它的应用程序范围是bean

@ManagedBean(eager=true)
更新:

你的托管bean应该是这样的

MyBean mb = (MyBean)FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("beanName");
如果您只想在另一个bean中使用您的bean,那么正如BalusC所建议的,只需注入它并获取填充值,而不使用
new

例如:如果您希望在
SomeOtherBean
中弹出您的
MyBean
,那么

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(eager="true")
@RequestScoped
public class MyBean {
更新

对于JSF1.2,没有注释,您需要配置
faces config.xml
,如下所示

@ManagedBean()
@RequestScoped
public class SomeOtherBean {
   @ManagedProperty(value="#{myBean}") 
   private MyBean myBean;
   //getters & setters of myBean

蚕豆
com.example.my.MyBean
要求
其他人
com.example.some.AnotherBean
要求
蚕豆
#{myBean}

您正在使用new创建对象,比如
MyBean MyBean=new MyBean()


所以您肯定会得到null。

您正在使用new创建对象,比如
MyBean MyBean=new MyBean()


所以您肯定会得到空值。

我使用的是jsf2.0,但是在哪里包含标签@ManagedBean(eager=true)???在bean声明中,我的IDE出现了错误,我们正在从jsf1迁移到jsf2,出现了一些问题。jsf1中不会有其他解决方案@Jigar如果有人想知道-要检索SessionScoped bean,必须使用
getSessionMap
而不是
getApplicationMap
。我使用的是jsf2.0,但是在哪里包括标记@ManagedBean(eager=true)???在bean声明中,我的IDE出现了错误,我们正在从jsf1迁移到jsf2,出现了一些问题。jsf1中不会有其他解决方案@Jigar如果有人想知道-要检索SessionScoped bean,必须使用
getSessionMap
而不是
getApplicationMap