Struts 2でHttpServletRequestを取得する方法
Struts 2では、以下の2つのメソッドを使用して
HttpServletRequest
オブジェクトを取得できます。
1. 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
‘インターセプタが、Actionクラスが
ServletRequestAware
インタフェースを実装していると見なした場合、要求されたActionクラスへの
HttpServletRequest
参照が
setServletRequest()
メソッドを介して渡されます。
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; } }
-
ServletActionContext
ではなくServletRequestAware
を推奨します。