Comment obtenir le HttpServletRequest dans Struts 2

Comment obtenir le HttpServletRequest dans Struts 2

Dans Struts 2, vous pouvez utiliser les deux méthodes suivantes pour obtenir l'objetHttpServletRequest.

1. ServletActionContext

Obtenez l'objet HttpServletRequest directement à partir deorg.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

Faites en sorte que votre classe implémente lesorg.apache.struts2.interceptor.ServletRequestAware.

Lorsque l'intercepteur Struts 2 'servlet-config' voit qu'une classe Action est implémentée dans l'interfaceServletRequestAware, il passera une référenceHttpServletRequest à la classe Action demandée via la méthodesetServletRequest() .

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;
    }
}

La documentation Struts 2 est recommandéeServletRequestAware au lieu deServletActionContext.