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 Primefaces 5-动态p:菜单问题_Jsf_Jsf 2_Primefaces_Menu_Managed Bean - Fatal编程技术网

Jsf Primefaces 5-动态p:菜单问题

Jsf Primefaces 5-动态p:菜单问题,jsf,jsf-2,primefaces,menu,managed-bean,Jsf,Jsf 2,Primefaces,Menu,Managed Bean,我对Primefaces还不熟悉,而且我一直在关注。 我已经成功构建了一个静态菜单。现在,我正在尝试构建一个非常简单的动态菜单,基本上是复制粘贴用户指南上的示例(如果您感兴趣,请参见第294页)。但它不起作用 这是我的XHTML页面: <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

我对Primefaces还不熟悉,而且我一直在关注。 我已经成功构建了一个静态菜单。现在,我正在尝试构建一个非常简单的动态菜单,基本上是复制粘贴用户指南上的示例(如果您感兴趣,请参见第294页)。但它不起作用

这是我的XHTML页面:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
     xmlns:h="http://xmlns.jcp.org/jsf/html"
     xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>test-primefaces</title>
</h:head>
<h:body>
    <h:form>
        <p:menu model="#{menuBean.model}" />
    </h:form>
</h:body>
菜单不起作用,当我尝试运行项目(我使用的是Netbeans)时,出现以下错误


找不到表达式为“messages”的组件,该表达式引用自“j_idt5:j_idt6”。

我无法理解为什么我会得到它,谷歌也无法帮助我。 最令人怀疑的是我在MenuBean.java中使用的注释和导入,因为Netbeans告诉我来自“javax.faces.bean”的注释在下一个JSF版本中将被弃用

另一个奇怪的事实是,在XHTML页面中,如果我改变

我没有得到错误,但是菜单没有呈现两个菜单项,我只看到一个菜单,有“动态子菜单”和“动态动作”,没有任何子项


我错过了什么?如有必要,我愿意提供有关我的代码/项目的更多信息。

对我来说,最好先检查Primefaces showcase,然后再查看手册

根据示例,您需要该零件

<p:growl id="messages" showDetail="false"/>

我想这也是错误信息所说的,它丢失了


关于注释,请参见建议,即。由于JSF2.2,建议从JSFbean转移到CDIBeans。

对我来说,最好先检查Primefaces showcase,然后再查看手册

根据示例,您需要该零件

<p:growl id="messages" showDetail="false"/>

我想这也是错误信息所说的,它丢失了


关于注释,请参见建议,即。自JSF2.2以来,建议从JSFbean转移到CDIBeans。

找不到从“ju idt5:ju idt6”引用的表达式为“messages”的组件。意味着它无法从具有update=“message”属性的组件中找到具有id=“ju idt5:ju idt6”的组件,在代码中是item.setUpdate(“消息”)


另一个解决方案是删除item.setUpdate(“消息”);如果您不想更新任何内容,或者如果您想更新消息,您可以在页面中添加一个id为message的组件。

找不到表达式为“messages”的组件,该表达式引用自“j_idt5:j_idt6”意味着它无法从id为的组件中找到id为“message”的组件在代码中具有属性的是item.setUpdate(“消息”)


另一个解决方案是删除item.setUpdate(“消息”);如果不想更新任何内容,或者如果要更新消息,请在页面中添加带有id消息的组件。

检查showcase中的编程菜单:。至少你需要这个角色嘿,就是那样!请随意发布答案,我会接受的!谢谢
item.setUpdate(“消息”)
希望有一个名为messages的组件来传递更新..那么注释的OImport呢,它们是正确的吗?我想是这样,因为菜单现在正在运行,但是导入的库很快就会被弃用!对于
@ManagedBean
您将改用
@Named
,作用域来自cdi(javax.enterprise.context),但
ViewScope
javax.faces.view.ViewScoped
请检查showcase中的编程菜单:。至少你需要这个角色嘿,就是那样!请随意发布答案,我会接受的!谢谢
item.setUpdate(“消息”)
希望有一个名为messages的组件来传递更新..那么注释的OImport呢,它们是正确的吗?我想是这样,因为菜单现在正在运行,但是导入的库很快就会被弃用!对于
@ManagedBean
您将改用
@Named
,作用域来自cdi(javax.enterprise.context),除了
ViewScope
javax.faces.view.ViewScoped