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
Java primefaces创建动态仪表板_Java_Jsf_Primefaces_Ejb 3.0 - Fatal编程技术网

Java primefaces创建动态仪表板

Java primefaces创建动态仪表板,java,jsf,primefaces,ejb-3.0,Java,Jsf,Primefaces,Ejb 3.0,下面是我尝试创建动态仪表板的示例 复制代码的工作效率为100%,但我尝试将其用于我自己的实现 当我加载索引页时,它根本不显示任何面板或仪表板。当我导航到另一个页面并返回时,元素就会出现 我不知道为什么仪表板在初始页面加载时不显示 我正在使用JBoss5.1、EJB3.0、JSF2.0和PrimeFaces3.4 这是我的控制器类的顶级: @Model @ViewController(viewId = "/pages/index.xhtml") public class MonitorContro

下面是我尝试创建动态仪表板的示例

复制代码的工作效率为100%,但我尝试将其用于我自己的实现

当我加载索引页时,它根本不显示任何面板或仪表板。当我导航到另一个页面并返回时,元素就会出现

我不知道为什么仪表板在初始页面加载时不显示

我正在使用JBoss5.1、EJB3.0、JSF2.0和PrimeFaces3.4

这是我的控制器类的顶级:

@Model
@ViewController(viewId = "/pages/index.xhtml")
public class MonitorController implements Serializable, ViewInitializer, ViewFinalizer {
@Inject
private transient MonitorService monitorService;
@Inject
private transient MonitorUserService monitorUserService;
@Inject
private transient MonitorView view;
@Inject
private transient Conversation conversation;

@Override
public void initializeView() {
    if (conversation.isTransient()) {
        conversation.setTimeout(1800000);
        conversation.begin();   
    }
    MonitorUser user = monitorUserService.findOrCreateUser();
    view.setUser(user);
    List<MonitorElement> elements = monitorService.findMonitorElementsByUser();
    view.setElements(elements);
    view.setUsersMonitorElements(elements);
    createDashBoard();
}
@模型
@ViewController(viewId=“/pages/index.xhtml”)
公共类MonitorController实现可序列化、ViewInitializer、ViewFinalizer{
@注入
专用临时监视器服务监视器服务;
@注入
私有瞬态MonitorUserService MonitorUserService;
@注入
私有瞬态监视器视图;
@注入
私人短暂对话;
@凌驾
public void initializeView(){
if(conversation.isTransient()){
会话设置超时(1800000);
对话。开始();
}
MonitorUser=monitorUserService.findOrCreateUser();
view.setUser(用户);
List elements=monitorService.FindMonitorElementsByser();
视图。设置元素(元素);
view.setUsersMonitorElements(元素);
createDashBoard();
}
这是我创建仪表板、添加面板和设置列小部件的方法:

public void createDashBoard() {

    final int DEFAULT_COLUMN_COUNT = 3;
    int columnCount = DEFAULT_COLUMN_COUNT;
    Dashboard dashboard;

    FacesContext fc = FacesContext.getCurrentInstance();
    Application application = fc.getApplication();

    dashboard = (Dashboard) application.createComponent(fc, "org.primefaces.component.Dashboard", "org.primefaces.component.DashboardRenderer");
    dashboard.setId("dashboard");

    DashboardModel model = new DefaultDashboardModel();
    for( int i = 0; i < columnCount; i++ ) {
        DashboardColumn column = new DefaultDashboardColumn();
        model.addColumn(column);
    }
    dashboard.setModel(model);

    view.setModel(dashboard.getModel());

    view.setDashboard(dashboard);


int index = 0;

    for( MonitorElement i : view.getUsersMonitorElements()) {

          Panel panel = (Panel) application.createComponent(fc, "org.primefaces.component.Panel", "org.primefaces.component.PanelRenderer");
            panel.setId("id" + i.getId());
            panel.setHeader("Dashboard Component " + i.getApplicationName());
            panel.setClosable(true);
            panel.setToggleable(true);

            dashboard.getChildren().add(panel);
            DashboardColumn column2 = model.getColumn(index%columnCount);
            column2.addWidget(panel.getId());
            HtmlOutputText text = new HtmlOutputText();
            text.setValue(i.getCount() + "" );

            panel.getChildren().add(text);
            index++;
    }
    view.setModel(dashboard.getModel());

    view.setDashboard(dashboard);

}
public void createDashBoard(){
最终整数默认列计数=3;
int columnCount=默认列数;
仪表板;
FacesContext fc=FacesContext.getCurrentInstance();
Application Application=fc.getApplication();
dashboard=(dashboard)application.createComponent(fc,“org.primefaces.component.dashboard”,“org.primefaces.component.DashboardRenderer”);
dashboard.setId(“dashboard”);
DashboardModel=新的DefaultDashboardModel();
对于(int i=0;i
我正在我的索引页上使用以下工具实现仪表板:

<p:dashboard id="dynamic_dashboard3"
            binding="#{monitorView.dashboard}">

        </p:dashboard>


您实现的ViewInitializer是什么?ViewInitializer只是一个具有void initializeView()方法的接口,该方法在创建视图时调用