Primefaces p:菜单所有图标都跳转到子菜单

时间:2012-11-13 09:43:01

标签: primefaces tomcat7

我正在使用:

  • primefaces 3.4
  • tomcat7
  • 使用自定义primefaces主题(dark-hive)
  • firefox 16.0.2,IE8

我正在尝试将p:menu添加到网站:

<?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:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      >
    <body>

        <ui:composition>
            <h:form>
                <p:menu >  
                    <p:submenu label="TESTING" icon="ui-icon-disk">  
                        <p:menuitem value="TEST"  outcome="/jsp/home" icon="ui-icon-star"/>
                        <p:menuitem value="List" outcome="/jsp/rip/home2" /> 
                        <p:menuitem value="ExcelTEst" outcome="/jsp/excelTest" /> 
                    </p:submenu>  
                </p:menu>

            </h:form>
        </ui:composition>

    </body>
</html> 

在此示例中,图标ui-icon-star跳转到子菜单测试左上角。这也适用于我为menuitems添加的所有图标。 至于图标ui-icon-disk,它不显示。

我尝试了其他几个例子。 这很有效:

<p:panelMenu style="width:200px">  

    <p:submenu label="Navigations" >  
        <p:submenu label="Links" icon="ui-icon-extlink">  
            <p:submenu label="PrimeFaces" icon="ui-icon-heart">  
                <p:menuitem value="Home" url="http://www.primefaces.org" icon="ui-icon-home" />  
                <p:menuitem value="Docs" url="http://www.primefaces.org/documentation.html" icon="ui-icon-document" />  
                <p:menuitem value="Download" url="http://www.primefaces.org/downloads.html" icon="ui-icon-arrowthick-1-s" />  
                <p:menuitem value="Support" url="http://www.primefaces.org/support.html" icon="ui-icon-wrench" />  
            </p:submenu>  
        </p:submenu>  
        <p:menuitem value="Mobile" icon="ui-icon-signal"/>  
    </p:submenu>  
</p:panelMenu> 

有人可以说,出了什么问题?为什么p:菜单无法按预期工作?

enter image description here

2 个答案:

答案 0 :(得分:1)

这不是正确的解决方案,只需修复自定义主题css:

.ui-menu .ui-icon 
    position: absolute; /* remove this line */
    top: .2em;
    left: .2em;
}

to

.ui-menu .ui-icon 
     top: .2em;
    left: .2em;
}

答案 1 :(得分:0)

解决 从ThemeRoller中删除主题并从Primefaces中获取主题。它奏效了。