PrimeFaces 6.0 PanelMenu 的根子菜单是否支持用户图标 [英] Are user icons supported on root submenus in PrimeFaces 6.0 PanelMenu

查看:53
本文介绍了PrimeFaces 6.0 PanelMenu 的根子菜单是否支持用户图标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我制作了一个 PanelMenu 并尝试向根子菜单添加一个图标,但它不起作用.

I made a PanelMenu and I tried to add an icon to the root submenu but it's not working.

<p:panelMenu>
    <p:submenu label="Üye işlemleri" icon="fa fa-user-plus">
        <p:menuitem value="Üye Kayıt" icon="fa fa-user-plus"
            action="#{redirect.toRegister()}" /> 
        <p:menuitem value="Üye Düzenle" icon="fa fa-pencil" />
    </p:submenu>
    <p:submenu label="Kullanıcı işlemleri" icon="ui-icon-extlink">
        <p:menuitem value="Anasayfa" icon="fa fa-home"
            action="#{redirect.toMainPage()}" />
        <p:menuitem value="Üye Kayıt" icon="fa fa-user-plus"
            action="#{redirect.toRegister()}" /> 
        <p:menuitem value="Üye Düzenle" icon="fa fa-pencil" />
    </p:submenu>
</p:panelMenu>

你有什么想法吗?我也尝试过使用 ui-icon(不是 fontawesome).我不想更改默认子菜单图标.我想在 此页面 上的默认图标旁边添加.您可以在示例中看到,尤其是在 Navigation > Link 中.如您所见,Link 是一个子菜单.是否真的必须在彼此内部有 2 个子菜单才能添加图标?

Do you have any idea? I also tried with ui-icon (not fontawesome). I don't want to change default submenu icon. I want to add next to default icon like on this page. You can see at the example, especially in Navigation > Link. As you can see, Link is a submenu. Does it really have to be 2 submenu inside each other for adding icon?

编辑------

我的渲染类在PanelMenuRenderer"上扩展,我的faces-config.xml是;

My render class get extends on "PanelMenuRenderer" and my faces-config.xml is;

<render-kit>
    <renderer>
        <component-family>org.primefaces.component</component-family>
        <renderer-type>org.primefaces.component.PanelMenuRenderer</renderer-type>
        <renderer-class>denemeExample.my</renderer-class>
    </renderer>
</render-kit>

当我尝试运行它时出现错误.

When I try to run it I get an error .

An Error Occurred:

javax/servlet/jsp/jstl/core/Config
- Stack Trace

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:344)
    at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:153)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

我试图解决这个问题,将 jstl-1.2.jar 和 jsp-api.jar 添加到 WEB-INF/lib 中,但没有解决,服务器开始不合逻辑地工作.它不适用于 xhtml 中的任何代码,如 p:outputLabel 或 h:outputLabel.我认为tomcat不会运行.最后,我使用 PrimeFaces 6.0 和 jsf 2.2 .那么你知道我该怎么做吗?

I tried to solve this adding jstl-1.2.jar and jsp-api.jar inside to WEB-INF/lib but not solved and server starts working unlogical. It doesnt work any code in xhtml like p:outputLabel or h:outputLabel. I think tomcat doesnt run. Last of all I use PrimeFaces 6.0 and jsf 2.2 . So do you have any idea what should I do ?

推荐答案

添加图标真的需要两个子菜单吗?

Does it really have to be 2 submenu inside each other for adding icon ?

是的.如 PrimeFaces 文档:

第一级子菜单呈现为手风琴面板,子菜单呈现为树节点.

First level of submenus are rendered as accordion panels and descendant submenus are rendered as tree node.

如果您查看 源代码,你会看到在encodeRootSubmenu()中不会考虑根子菜单中的用户图标.另一方面,encodeDescendantSubmenu() 中将考虑后代子菜单用户图标.

If you look at the source code, you will see that user icons in root submenus will not be taken into account in encodeRootSubmenu(). On the other hand descendant submenus user icons will be taken into account in encodeDescendantSubmenu().

获得用户图标支持 PanelMenus 中的根子菜单的一种可能解决方案是基于 PanelMenuRenderer 创建自定义渲染器并覆盖 encodeRootSubmenu().也许这个问题可以帮助您作为起点.

One possible solution to get user icon support for root submenus in PanelMenus, is to create a custom renderer based on PanelMenuRenderer and to override encodeRootSubmenu(). Maybe this question helps you as a starting point.

这篇关于PrimeFaces 6.0 PanelMenu 的根子菜单是否支持用户图标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆