4

Struts2 で Referer ヘッダーを取得するにはどうすればよいですか? 現在、私は ActionSupport クラスを使用していますが、ServletActionContext オブジェクトを取得したり、ServletRequestAware インターフェイスを実装したりすることができないようです。(Struts2 の ServletRequestAware はどこにありますか?どの jar ファイルですか?)

セッション変数に保存されている、ページのリファラーへの自動リダイレクトを設定しようとしています。誰かが OAuth 認証を要求すると、リファラーをセッションに保存してから、Twitter に送信します。許可をクリックすると、Twitter は私の OAuth コールバック URL に送信します。私はそこで作業し(アクセストークンを永続化)、セッションに保存したリファラーにそれらを送信したいと考えています。

お察しのとおり、私は Struts の初心者です。私はJavaドキュメントを読んだり、グーグルで検索したり、その他の方法で私に対する怒りを避けようとしたりして、3時間以上費やしました

ありがとう!

4

1 に答える 1

5

アクションでHTTP要素を参照するのは「クール」と見なされますが、必要になるので....

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);

インターフェイスを実装し、メンバー変数を作成してHttpServletRequestから、上記の実装されたセッターでメンバー変数をリクエストに設定します。これでリクエストがあり、実行できますrequest.getHeader("referer")

静的メソッドorg.apache.struts2.ServletActionContext.getRequest()を使用してリクエストを取得する人もいます。単体テストがより困難になる可能性があるため、悪い形式と見なされますが、私は常にそれを目にします。

于 2009-10-24T17:53:21.950 に答える