我有以下JSF代码片段,它由ui:composition标签组成,使用自定义组件工作得很好 - 具有所有这些信息的文件名为header.xhtml。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:projsfhtml5="http://xmlns.jcp.org/jsf/composite/projsfhtml5">
<ui:composition>
<!-- Include Prime Faces mega menu here -->
<projsfhtml5:navbar label="Mega App"
value="#{request.contextPath}/protected/pages/bookSearch.xhtml">
<projsfhtml5:navitem label="Contact Us"
value="#{request.contextPath}/public/pages/contactUs.xhtml" />
<projsfhtml5:navitem label="About"
value="#{request.contextPath}/public/pages/about.xhtml" />
</projsfhtml5:navbar>
<div class="page-header">
<h1>
<ui:insert name="headerText">Welcome to the online library</ui:insert>
</h1>
</div>
</ui:composition>
</html>
此文件又是simple.xhtml模板的一部分,该模板用作网站中许多页面的模板。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title><ui:insert name="title">Welcome</ui:insert></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
<ui:include src="common/bootstrapCSS.xhtml" />
</h:head>
<h:body>
<div class="container">
<ui:insert name="header">
<ui:include src="common/header.xhtml" />
</ui:insert>
<ui:insert name="content"></ui:insert>
<ui:insert name="footer"></ui:insert>
</div>
<ui:include src="common/bootstrapJS.xhtml" />
</h:body>
</html>
我最终要做的是代替header.xhtml中的projsfhtml5:navitem标签我想渲染主要面孔的大型菜单元素,以便用它来显示菜单项 - 这似乎有效(即渲染部分)但菜单无法正确扩展,无法单击任何选项。有没有人尝试过这个或有经验呢?
由于