我想添加一个URL片段#top
到HtmlOutcomeTargetLink
,但不知道如何。对于HtmlOutputLink
,我只使用以下方法:
HtmlOutputLink link = new HtmlOutputLink();
String urlWithFragment = url + "#top";
link.setValue(urlWithFragment);
如何为HtmlOutcomeTargetLink
完成这一点?
不幸的是,以下内容不起作用:
HtmlOutcomeTargetLink link = new HtmlOutcomeTargetLink();
String urlWithFragment = context.getViewRoot().getViewId() + "#top";
link.setOutcome(urlWithFragment);
感谢您的帮助!
HtmlOutcomeTargetLink
的outcome
(<h:link>
)仅采用导航案例结果,而不是URL。导航案例结果不支持 URL 片段。这些需要设置为单独的fragment
属性。
link.setFragment("top");
另请参阅:
-
<h:link>
标签文档
更新:等等,UIOutcomeTarget
父类上没有二传手。我怀疑生成的代码存在疏忽(有趣的是,它在 Mojarra 快照文档和 MyFaces 测试用例中都提到了)。您应该能够直接在属性映射上设置它:
link.getAttributes().put("fragment", "top");