p:具有动态和非动态子菜单的菜单栏

Posted

技术标签:

【中文标题】p:具有动态和非动态子菜单的菜单栏【英文标题】:p:menubar with both dynamic and non-dynamic submenus 【发布时间】:2020-10-05 21:43:37 【问题描述】:

我目前正在尝试创建一个p:menubar,它有一个动态创建的子菜单,但所有其他子菜单通常应在 xhtml 中声明。遗憾的是,我找不到任何有关如何执行此操作的信息,因为您似乎总是必须创建一个 MenuModel 并将其用作完整 p:menubar 的模型。

仅使用两个单独的菜单栏时,可能会同时打开多个子菜单,这会导致它们重叠。那么间距也是错误的。

编辑:我不能使用 JSTL,所以用c:forEach 的解决方案是不可能的。 它必须是动态的,因为每次请求时都会从数据库中加载项目。

编辑 2:我可以使用 JSTL,但我仍然没有真正理解如何最好地实现这一点。我不想有一个菜单栏,其中一些子菜单是普通的静态子菜单,但是在代码中动态构建了一个子菜单(对于每个请求,ajax 都没有)。然而,这个动态子菜单有多个子子菜单,它们依次有自己的子菜单,所以理论上我必须以某种方式递归地遍历所有子菜单。

我正在使用 Primefaces 8.0 和 JSF 2.2

【问题讨论】:

嗨,一些 cmets:1:PF 版本丢失(添加 JSF 版本和 impl 也很好)。以及“动态”是如何动态的?那么它必须改变吗? 这能回答你的问题吗? Mixing static and dynamic menu entries in PrimeFaces menu components @Kukeltje 不,它没有,因为我不能使用 c:forEach。我目前这里没有代码,因此无法检查 PF 版本,我会在有问题时更新我的​​问题(可能不会在星期五之前) 不能使用c:forEach?仅当您还需要使用 ajax 更新菜单时。否则没有理由。这是一个非常基本的事情,应该添加到问题中。 非常感谢,我现在一定要阅读 JSTL。 【参考方案1】:

感谢Kukeltje 回答我的问题,我现在最终使用c:forEach,就像在linked 帖子中一样。

【讨论】:

如果它是重复的,则无需创建答案,只需评论(或投票,如果可以的话)作为重复或支持重复的评论。干杯。

以上是关于p:具有动态和非动态子菜单的菜单栏的主要内容,如果未能解决你的问题,请参考以下文章

动态菜单栏

动态添加CONTEXTMENUstrip的子菜单后,无法响应CLICK

VB.net如何动态获取菜单栏中的菜单名并用树型表示

动态菜单primefaces 4.0

导航栏的菜单活动背景动态

vue element-ui 左侧菜单栏 el-menu属性实现动态菜单