我正在寻找使用 JSF 和 CDI 处理简单菜单的最佳实践。
我想要一个带有动态条目的顶级菜单。类似于(来自主模板):
<ul>
<c:forEach var="menuItem" items="#{navigationBean.topMenuItems}">
<c:choose>
<c:when test="#{navigationBean.isSelectedTop(menuItem.name)}">
<li class="current_page_item"><h:outputLink value="#{menuItem.url}"><h:outputText value="#{menuItem.name}" /></h:outputLink></li>
</c:when>
<c:otherwise>
<li><h:outputLink value="#{menuItem.url}"><h:outputText value="#{menuItem.name}" /></h:outputLink></li>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
NavigationBean(Sessionscoped,并持有一个 NavigationItems 列表)和 NavigationItem 只是 bean。然后打开另一个视图,我将当前视图 ID 设置为在 navigatiobean 中选择:
@PostConstruct
private void init (){
navigation.setSelectedTopMenu(getViewId());
}
问题是,为时已晚。该页面已呈现,并且未选择任何视图 ID。
这种方法一点都不好吗?有没有最佳实践?搜索 JSF 菜单和 JSF 导航会导致其他问题,所以我找不到任何东西。
提前致谢!