質問

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

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

ご存知のように、Strutsは非常に新しいです。私は3時間以上Javaドキュメントを読んだり、グーグルで調べたり、noob cringe

に対する怒りを避けようとしました。

ありがとう!

役に立ちましたか?

解決

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

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

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

一部の人々は、静的メソッド org.apache.struts2.ServletActionContext.getRequest()を使用してリクエストを取得します。ユニットテストがより難しくなる可能性があるため、その悪いフォームと見なされますが、私はいつもそれを見ています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top