Как получить HttpServletRequest в Struts 2

Как получить HttpServletRequest в Struts 2

В Struts 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' видит, что класс Action реализует интерфейсServletRequestAware, он передает ссылкуHttpServletRequest на запрошенный класс Action через метод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;
    }
}

В документации Struts 2 рекомендуется использоватьServletRequestAware вместоServletActionContext.