Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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
Jsf 2 编程PrimeFaces菜单栏在MyFaces中不起作用,但在Mojarra中起作用_Jsf 2_Primefaces_Myfaces - Fatal编程技术网

Jsf 2 编程PrimeFaces菜单栏在MyFaces中不起作用,但在Mojarra中起作用

Jsf 2 编程PrimeFaces菜单栏在MyFaces中不起作用,但在Mojarra中起作用,jsf-2,primefaces,myfaces,Jsf 2,Primefaces,Myfaces,我尝试实现一个编程菜单栏,其中对方法的item元素调用抛出actionListener。这不适用于MyFaces2.1.6,但适用于mojarra 2.1.8。我的代码中有错误?我的脸上有虫子 这是我的代码: xhtml <h:form> <p:tabView id="head" dynamic="true" cache="true" style="width:972px;"> <p:tab i

我尝试实现一个编程菜单栏,其中对方法的item元素调用抛出actionListener。这不适用于MyFaces2.1.6,但适用于mojarra 2.1.8。我的代码中有错误?我的脸上有虫子

这是我的代码:

xhtml

        <h:form>
            <p:tabView id="head" dynamic="true" cache="true" style="width:972px;">
                <p:tab id="tab1" title="Config">
                </p:tab>
                <p:tab id="tab2" title="Result">
                    <p:menubar model="#{someBean.menu}" autoDisplay="false" />
                </p:tab>
            </p:tabView>
        </h:form>

有什么建议吗?或者将MyFaces更改为Mojarra

最近发现了它,请尝试使用2.1.5和最新版本。无论如何,我认为情况并非如此,相反,这可能是由于试图在错误的时间操纵组件树造成的。MyFaces进行了一些优化,以防止在不需要时刷新组件树,因此请尝试将org.apache.MyFaces.refresh\u TRANSIENT\u BUILD\u ON_PSS web config参数设置为“true”。谢谢!我尝试了这两种建议,但都不起作用。看到例外情况可能会很好。我认为MyFaces代码还可以,也许这与primefaces有关。
public MenuBean() {
        FacesContext facesCtx = FacesContext.getCurrentInstance();
        ELContext elCtx = facesCtx.getELContext();
        ExpressionFactory expFact = facesCtx.getApplication().getExpressionFactory();

        menu = new DefaultMenuModel();

        Submenu submenu = new Submenu();
        submenu.setLabel("Dynamic Submenu 1");

        MenuItem item = new MenuItem();
        item.setValue("Dynamic Menuitem 1.1");
        item.setId("item1");
        item.setAjax(false);
        MethodExpression actionListener = expFact.createMethodExpression(elCtx, "#{someBean.hello}", null, new Class[] { ActionEvent.class });
        item.addActionListener(new MethodExpressionActionListener(actionListener));

        submenu.getChildren().add(item);

        menu.addSubmenu(submenu);

        submenu = new Submenu();
        submenu.setLabel("Dynamic Submenu 2");
        item = new MenuItem();
        item.setValue("Dynamic Menuitem 2.1");
        item.setAjax(false);
        item.setId("ite3");
         actionListener = expFact.createMethodExpression(elCtx, "#{someBean.hello}", null, new Class[] { ActionEvent.class });
        item.addActionListener(new MethodExpressionActionListener(actionListener));

        submenu.getChildren().add(item);

        menu.addSubmenu(submenu);}
        public void hello(ActionEvent event) {  System.out.println("hola2");}