您可以#{view.viewId}
在 EL 中使用来获取当前视图 ID。
因此,这应该使其适用于所有页面:
<ul class="nav">
<li class="#{view.viewId == '/home.xhtml' ? 'active' : ''}"><a href="home.xhtml">Home</a></li>
<li class="#{view.viewId == '/about.xhtml' ? 'active' : ''}"><a href="about.xhtml">About us</a></li>
<li class="#{view.viewId == '/contact.xhtml' ? 'active' : ''}"><a href="contact.xhtml">Contact us</a></li>
</ul>
如果您在 EL 范围内的某个地方有一组页面,那会更加干燥:
<ul class="nav">
<ui:repeat value="#{app.pages}" var="page">
<li class="#{view.viewId == page.viewId ? 'active' : ''}"><h:link value="#{page.title}" outcome="#{page.viewId}" /></li>
</ui:repeat>
</ul>
请注意,<h:link>
将自动在 URL 中添加上下文路径,因此/
在视图 ID 中添加无关紧要。