如何在JSF中的页面之间导航中管理侧边栏菜单?

时间:2019-04-16 18:32:38

标签: jsf navigation submenu

我正在使用带有边栏的自定义模板:我有3个可以打开或关闭的分组菜单。我只有在某些页面上才会打开菜单。

我尝试使用NavigationController带有一个属性,该属性让我了解“现在在哪里”,以便我可以打开正确的菜单。

@ManagedBean(eager = true)
@RequestScoped
public class NavigationController implements Serializable {
   @ManagedProperty(value = "#{param.pageId}")
   private String pageId;

   public String showPage() {
       switch(pageId) {
          case "1": return "home";
          case "21": return "cerca_a";
          case "22": return "anagrafica?id_p=new&faces-redirect=true";
          ...
         default: return "home";
       }
  }
  //getter and setter
}

像这样在sideBar.xhtml中使用

<ul class="collapse list-unstyled #{navigationController.pageId lt 30? 'show':''}">
  <li><h:commandLink action="#{navigationController.showPage}" value="Cerca">
    <f:param name="pageId" value="31"/></h:commandLink></li>
  ...
</ul>

当我使用带参数的链接时(第22种情况),它不起作用:没有打开菜单,它会失去#{navigationController.pageId}。 由于它是 @RequestScoped ,并且我调用anagrafica?id_p = new时,AnagConverter会执行,因此可以肯定会发生。

我应该使用 @ViewScoped 吗?怎么样?有没有更好的方法来维护自定义“面包屑”?

非常感谢!

0 个答案:

没有答案