1

#topにURLフラグメントを追加したいのです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);

ご協力いただきありがとうございます!

4

1 に答える 1

2

outcomeof HtmlOutcomeTargetLink(the )は<h:link>、ナビゲーションケースの結果のみを取得し、URLは取得しません。ナビゲーションケースの結果は、UR​​Lフラグメントをサポートしていません。fragmentそれらは別の属性として設定する必要があります。

link.setFragment("top");

参照:


更新UIOutcomeTarget:待ってください。親クラスにはそのためのセッターはありません。生成されたコードに見落としがあるのではないかと思います(おかしなことに、MojarraスナップショットドキュメントMyFacesテストケースで言及されています)。属性マップに直接設定できるはずです。

link.getAttributes().put("fragment", "top");
于 2012-10-01T15:43:35.307 に答える