【发布时间】:2013-09-20 07:58:01
【问题描述】:
我正在尝试使用来自 PrimeFaces 的 ChartBean 示例。这是视图:
<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>
这是豆子:
@Named
@RequestScoped
public class ChartBean implements Serializable {
private CartesianChartModel categoryModel;
private CartesianChartModel linearModel;
public ChartBean() {
System.out.println("ChartBean constructed");
createCategoryModel();
createLinearModel();
}
// ...
}
当我运行它时,我注意到这个 bean 的构造函数在打开页面时被调用了两次。日志显示如下:
信息:ChartBean 构造
信息:ChartBean 构造
所以 bean 被实例化了两次。这是如何引起的,我该如何避免呢?我正在与 DB 交互以获取一些数据以在 UI 中显示,这样就不必要地获取了两次数据。
【问题讨论】:
标签: jsf primefaces constructor cdi glassfish-4