相关疑难解决方法(0)

打开页面时,CDI托管bean的构造函数被调用两次

我正在尝试使用ChartBeanPrimeFaces 的样本.这是观点:

<h:form>
    <p:layoutUnit position="center">             
    <p:lineChart id="linear" value="#{chartBean.linearModel}" legendPosition="e"
        title="Linear Chart" minY="0" maxY="1000" style="height:600px"/>                        
    </p:layoutUnit>
</h:form>
Run Code Online (Sandbox Code Playgroud)

这是豆子:

@Named
@RequestScoped
public class ChartBean implements Serializable {

    private CartesianChartModel categoryModel;
    private CartesianChartModel linearModel;

    public ChartBean() {
        System.out.println("ChartBean constructed");
        createCategoryModel();
        createLinearModel();
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我注意到在打开页面时调用了这个bean的构造函数两次.日志显示以下内容:

INFO:ChartBean构造了
INFO:ChartBean

所以bean被实例化了两次.这是怎么造成的,我怎么能避免这种情况?我正在与数据库进行交互,以便在UI中显示一些数据,这样就不必两次获取数据.

jsf constructor primefaces cdi glassfish-4

3
推荐指数
1
解决办法
2090
查看次数

标签 统计

cdi ×1

constructor ×1

glassfish-4 ×1

jsf ×1

primefaces ×1