2

ServletRequestStruts2 インターセプター (アクション クラスではない) 内で属性を設定する必要があります。

セッション属性の場合と同様に、リクエスト属性を制御するために をActionContext公開しますか?Map<String, Object>

マップをActionContext実装しています。ActionContextそれ自体がリクエスト属性のラッパーですか?

4

2 に答える 2

1

アクション クラス内にないコード (アクション クラスRequestAwareに使用する必要があります) の場合、Struts2 はサーブレット リクエスト属性を Map として公開できます。それらは次の方法でアクセスできます。

Map request = (Map) ActionContext.getContext().get("request");

詳細については、 Strus2 のドキュメントを参照してください。

于 2014-01-22T20:50:06.547 に答える
1

にはActionContext、リクエスト オブジェクトを保持するリクエスト キーが含まれています。あなたの質問に答えるには: いいえ、ActionContextリクエストのラッパーではありませんが、Struts2 のリクエストはサーブレット リクエストのラッパーです。

request次のようなアクションコンテキストから取得できます

HttpServletRequest request = ServletActionContext.getRequest();

その方法はインターセプターでは便利ですが、実際には実装する方が良いですServletRequestAware

protected HttpServletRequest request;

public void setServletRequest(HttpServletRequest request) {
  this.request = request;
}
于 2014-01-22T19:41:58.547 に答える