如何将 primefaces 添加到我的 jsp 和 servlet 导航栏

问题描述 投票:0回答:2

我几乎所有的项目都在

jsp and servlets
中,现在我想将
primefaces
中的页面添加到我的导航栏...无论我尝试过什么,它都不会将其添加到我的项目中。 ..我是否在
web.xml
文件中遗漏了某些内容?当我尝试将
primefaces
添加到我的
jsp and servlets
项目时,为什么它没有显示在我的页面上?是否可以将
primefaces
添加到
jsp

来自

primefaces
我想添加
index.xhtml
appmenu.xhtml
template.xhtml

这些是我的

index.html
navbar.jsp
看起来像这样...所以我想通过将
index.xhtml
添加到我的导航类来完成类似的事情

index.html

  <ul class="nav">
           <li class="active"><a href="#">Home</a></li>
           <li><a href="assets.jsp">Assets</a></li>
           <li><a href="groups.jsp">Groups</a></li>
           <li><a href="LocationServlet">Locations</a></li>
           <li><a href="relocate.jsp">Relocate</a></li>    
           <li><a href="index.xhtml">Reports</a></li>   
   </ul>

所以我在我的导航栏类中尝试使用 href="index.xhtml 进行同样的操作

navbar.jsp

<ul class="nav">
        <li <c:if test="${param.pageName == 'home'}">class="active"</c:if>><a href="index.html">Home</a></li>
        <li <c:if test="${param.pageName == 'assets'}">class="active"</c:if>><a href="assets.jsp">Assets</a></li>
        <li <c:if test="${param.pageName == 'groups'}">class="active"</c:if>><a href="groups.jsp">Groups</a></li>
        <li <c:if test="${param.pageName == 'locations'}">class="active"</c:if>><a href="${pageContext.request.contextPath}/LocationServlet">Locations</a></li>
        <li <c:if test="${param.pageName == 'relocate'}">class="active"</c:if>><a href="relocate.jsp">Relocate</a></li>
        <li <c:if test="${param.pageName == #}">class="active"</c:if>><a href="index.xhtml">Reports</a></li>
    </ul>
java jsp jsf servlets primefaces
2个回答
1
投票

Primefaces 是一个 JSF 框架,所以你的问题的答案是否定的。通过添加 myfaces 或 mojarra JSF 实现应该可以实现,但它是一个丑陋的混合体,而不仅仅是 JSP。

还有,

<c:if test="${param.pageName == #}">
应该是
<c:if test="${param.pageName == '#'}">
才能使测试为真,除非 # 是变量或拼写错误?


0
投票

:可以在 JSP 中添加 Primeface。
首先,在Jsp页面中导入xhtml页面:

  • 示例:

  • 创建一个 Bean 以确保在 jsp 中支持 xhtml 扩展:


@ViewScoped
public class JSFSupport  extends SpringBeanAutowiringSupport{

   public void ensureXHTML(){

     RequestStateManager.set(FacesContext.getCurrentInstance(), "com.sun.faces.INVOCATION_PATH",".xhtml" );

    }
}
  • 在xhtml中添加预渲染事件

    <f:event type="preRenderView" listener="#{jspPageSupport.ensureXHTML()}"/>
    
  • primefaces应该在jsp页面内正常工作。

  • 如果使用 Spring MVC 或 SpringBoot 扩展类“SpringBeanAutowiringSupport”

© www.soinside.com 2019 - 2024. All rights reserved.