EL で使用#{view.viewId}
して、現在のビュー 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スコープのどこかにページのコレクションがある場合は、よりDRYになります。
<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 が含まれていても問題ないことに注意してください。