我想将一个网址片段#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);
感谢您的帮助!
答案 0 :(得分:2)
outcome
的{{1}}(HtmlOutcomeTargetLink
)仅获取导航案例结果,而不是网址。导航案例结果不支持URL片段。这些需要设置为单独的<h:link>
属性。
fragment
更新:等待,UIOutcomeTarget
父类没有设置器。我怀疑在生成的代码中有疏忽(有趣的是它提到了here in Mojarra snapshot docs和here in a MyFaces testcase)。您应该可以直接在属性映射上设置它:
link.setFragment("top");