私の最終的な目標は、改札サイトのフォームに戻るボタンを生成することです。
現在、次の方法でリファラーを取得できます。
HttpServletRequest req = (HttpServletRequest)getRequest().getContainerRequest();
l.info("referer: {}", req.getHeader("referer"));
これは機能し、URL 全体を (文字列として) 取得しますが、これから Link オブジェクトを生成できません。
のコードを見てきましたが、内部についてはよくApplication.addMount
わかりません。さらに、URL が を生成するためにIRequestHandler
必要なものに変換される場所を正確に見つけることができませBookmarkablePageLink
ん。Class
PageParameters
PS これは JavaScript で実行できることはわかっていますが、JS をアクティブにせずにユーザーにサービスを提供したいと考えています。
ありがとう
私が現在使用している可能な解決策:
public static WebMarkupContainer getBackButton(org.apache.wicket.request.Request request, String id) {
WebMarkupContainer l = new WebMarkupContainer(id);
HttpServletRequest req = (HttpServletRequest)request.getContainerRequest();
l.add(AttributeModifier.append("href", req.getHeader("referer")));
return l;
}
私のマークアップには次のものがあります。
<a wicket:id="backButton">Back</a>
そして、私の Page オブジェクトで:
add(WicketUtils.getBackButton(getRequest(), "backButton");
誰かがより良いアイデアを持っている場合、私はこれをしばらく開いたままにします.