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
を推奨します。