Struts 2でHttpServletRequestを取得する方法
Struts 2では、次の2つのメソッドを使用してHttpServletRequestオブジェクトを取得できます。
1. ServletActionContext
HttpServletRequestオブジェクトをorg.apache.struts2.ServletActionContextから直接取得します。
import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; public class LocaleAction{ //business logic public String execute() { HttpServletRequest request = ServletActionContext.getRequest(); return "SUCCESS"; } }
2. ServletRequestAware
クラスにorg.apache.struts2.interceptor.ServletRequestAwareを実装させます。
Struts 2 'servlet-config'インターセプターは、アクションクラスがServletRequestAwareインターフェイスに実装されていることを確認すると、setServletRequest()メソッドを介して要求されたアクションクラスへのHttpServletRequest参照を渡します。 。
import javax.servlet.http.HttpServletRequest; import org.apache.struts2.interceptor.ServletRequestAware; public class LocaleAction implements ServletRequestAware{ HttpServletRequest request; //business logic public String execute() { String param = getServletRequest().getParameter("param"); return "SUCCESS"; } public void setServletRequest(HttpServletRequest request) { this.request = request; } public HttpServletRequest getServletRequest() { return this.request; } }
Struts 2のドキュメントでは、ServletActionContextではなくServletRequestAwareをお勧めします。