我想制作一个如下所示的链接:
http://domain.com/page.jsf?test=12#top
我尝试使用<h:outputLink>
:
<h:outputLink value="/page.jsf#top">
<f:param name="test" value="12" />
My link
</h:outputLink>
但它失败并产生链接http://domain.com/page.jsf#top?test=12
,这是错误的。
有没有办法使用JSF来做到这一点,还是我必须“手动”创建这种链接?
答案 0 :(得分:2)
从JSF 2.0开始,有一个<h:link>
组件通过其outcome
属性获取JSF导航案例结果,从而使其成为基于JSF的应用程序中导航的理想选择。您使用的组件<h:outputLink>
最适合用于导航到外部世界。你当然可以使用它来处理JSF导航,但它会感觉很笨拙。
如果您决定切换到<h:link>
,可以使用其fragment
属性来附加您的主播(请始终查看上面链接的文档):
在呈现目标页面时应该聚焦的页面片段的标识符。此属性的值将附加到哈希(#)标记后的目标URL的末尾。此表示法是标准URL语法的一部分。
总而言之,您的链接应该是:
<h:link value="My link" outcome="/page" fragment="top">
<f:param name="test" value="12" />
</h:link>
它将生成您想要的HTML。