TieredMenu在JSF 2.1组件库中不起作用不包含此类组件



我在项目中使用JSF 2.1。我已经动态创建了菜单。当我使用menuBar时,它可以正常工作,但是当我将其更改为tieredMenu时,它会产生错误:

组件库http://primefaces.org/ui不包含此类组件

我的XHTML代码如下:

<p:layoutUnit position="west" size="300" header="Hide me" resizable="false" closable="false" collapsible="true" style="font-weight: bold; width: 500px;">
      <h:form >
          <p:tieredMenu  model="#{menuCreator.model}" style="font-size: 14px; font-weight: bold; color: #000000; position: absolute;"/> 
      </h:form>
</p:layoutUnit>   

和我的后端bean在下面:

public MenuCreator() {
    model = new DefaultMenuModel();
    Gateway_RoleDetail gwRoleDetail = new Gateway_RoleDetail();
    List<RoleDetail> lstRoleDetail = new ArrayList<RoleDetail>();
 //  List<RoleDetail> lstRoleDetail2 = new ArrayList<RoleDetail>();
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Logininfo logininfo = (Logininfo) facesContext.getApplication().createValueBinding("#{logininfo}").getValue(facesContext);
    lstRoleDetail = gwRoleDetail.getRoleDetail(logininfo.getUserType());
    Iterator itrRole = lstRoleDetail.iterator();
    RoleDetail roleDetail, roleDetailInter,roleDetailsubMenu;
    String group_name = "";
    String rolename = "";
     while (itrRole.hasNext()) {
        roleDetail = (RoleDetail) itrRole.next();
        if (!group_name.equals(roleDetail.getGroup_name())) {
            group_name = roleDetail.getGroup_name();
            Submenu submenu = new Submenu();
            submenu.setLabel(group_name);
            Iterator itrInterlist = lstRoleDetail.iterator();
            while (itrInterlist.hasNext()) {
                roleDetailInter = (RoleDetail) itrInterlist.next();
                if (group_name.equals(roleDetailInter.getGroup_name())) {
                   if(!roleDetailInter.getRole_function_JSF().equals("1")) {
                      MenuItem item = new MenuItem();
                      item.setValue(roleDetailInter.getRole_name());
                      item.setUrl(roleDetailInter.getRole_function_JSF());
                      submenu.getChildren().add(item);
                   }
                   else if(roleDetailInter.getRole_function_JSF().equals("1")) {
                        MenuItem item = new MenuItem();
                        Submenu submenu1 = new Submenu();
                        submenu1.setLabel(roleDetailInter.getRole_name());
                        item = new MenuItem();
                        item.setValue("CPU");
                        item.setUrl("checkList.xhtml");
                        submenu1.getChildren().add(item);
                        item = new MenuItem();
                        item.setValue("Monitor");
                        item.setUrl("monitorCheckList.xhtml");
                        submenu1.getChildren().add(item);
                        item = new MenuItem();
                        item.setValue("Printer");
                        item.setUrl("printerCheckList.xhtml");
                        submenu1.getChildren().add(item);
                        submenu.getChildren().add(submenu1);                
                    }
                }
             }
             model.addSubmenu(submenu);
         }
     }
}

请给我一个解决方案。

此'错误'意味着您尝试使用的组件不存在于您使用的PrimeFaces版本中。使用较新版本。

最新更新