JSF2 - 如何创建包含参数和锚点的链接?

时间:2013-10-29 10:15:07

标签: jsf-2 hyperlink anchor

我想制作一个如下所示的链接:

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来做到这一点,还是我必须“手动”创建这种链接?

1 个答案:

答案 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。

进一步的参考点: