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

    を推奨します。