Facelets 策略来识别当前选定的列表项
我正在寻找一种策略来避免我的网站上出现代码重复。
问题是我有一个无序列表,在我编码的每个页面中都会重复。 原因是我有一个列表项,其中包含一个锚点来标识当前页面。我编码的每个页面都会重复该操作。 原因是我有一个列表项,其中包含一个锚点来标识当前页面。 这允许我用 css 来支持它。
如何以可以在 Facelet 中动态更改的方式定义这样的列表?
<ui:define name="leftBar">
<ul class="leftNav">
<li id="home"><a id="**currentPage**" jsfc="h:link" outcome="home">#{global.homeInCaps}</a></li>
<li id="about"><a jsfc="h:link" outcome="about">#{global.aboutInCaps}</a></li>
<li id="blog"><a jsfc="h:link" outcome="blog">#{global.blogInCaps}</a></li>
<li id="tutorials"><a jsfc="h:link" outcome="tutorials">#{global.tutorialsInCaps}</a>
<ul class="leftSubNav">
<li><a jsfc="h:link" outcome="java">#{global.javaNormal}</a>
<ul class="leftSubNav">
<li><a jsfc="h:link" outcome="setupPath">#{global.path}</a></li>
</ul>
</li>
<li><a jsfc="h:link" outcome="ubuntu">#{global.ubuntuNormal}</a></li>
<li><a jsfc="h:link" outcome="virtualbox">#{global.virtualBoxNormal}</a></li>
</ul>
</li>
<li id="contact"><a jsfc="h:link" outcome="contact">#{global.contactInCaps}</a></li>
</ul>
</ui:define>
I am looking for a strategy to avoid code duplication across my site.
The problem is that I have a unordered list that get's repeated in each page I code.
The reason is that I have a list-item that contains an anchor to identify the currentPage. That get's repeated in each page I code.
The reason is that I have a list-item that contains an anchor to identify the currentPage.
This allows me to hilite it with css.
How can I define such a list in a way that I can change it dynamically in facelets?
<ui:define name="leftBar">
<ul class="leftNav">
<li id="home"><a id="**currentPage**" jsfc="h:link" outcome="home">#{global.homeInCaps}</a></li>
<li id="about"><a jsfc="h:link" outcome="about">#{global.aboutInCaps}</a></li>
<li id="blog"><a jsfc="h:link" outcome="blog">#{global.blogInCaps}</a></li>
<li id="tutorials"><a jsfc="h:link" outcome="tutorials">#{global.tutorialsInCaps}</a>
<ul class="leftSubNav">
<li><a jsfc="h:link" outcome="java">#{global.javaNormal}</a>
<ul class="leftSubNav">
<li><a jsfc="h:link" outcome="setupPath">#{global.path}</a></li>
</ul>
</li>
<li><a jsfc="h:link" outcome="ubuntu">#{global.ubuntuNormal}</a></li>
<li><a jsfc="h:link" outcome="virtualbox">#{global.virtualBoxNormal}</a></li>
</ul>
</li>
<li id="contact"><a jsfc="h:link" outcome="contact">#{global.contactInCaps}</a></li>
</ul>
</ui:define>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 JSF 中,您可以通过以下方式获取当前视图 ID:
它将返回视图文件的 webcontent 相对路径,例如
/home.xhtml
、/about.xhtml
等。您可以借助 EL 中的条件运算符来设置类名来测试它。然后,您可以使用 CSS 设置表示当前页面的链接
leftNav
不应该是id
吗?In JSF you can get the current view ID by
It will return the webcontent-relative path of the view file, e.g.
/home.xhtml
,/about.xhtml
, etc. You could test it with help of the conditional operator in EL to set the classname.You can then style the link representing the current page with CSS
Shouldn't the
leftNav
rather be anid
?