Wie erhalte ich die HttpServletRequest in Struts 2?

So erhalten Sie die HttpServletRequest in Struts 2

In Struts 2 können Sie die folgenden zwei Methoden verwenden, um dasHttpServletRequest-Objekt abzurufen.

1. ServletActionContext

Rufen Sie das HttpServletRequest-Objekt direkt vonorg.apache.struts2.ServletActionContext ab.

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

Lassen Sie Ihre Klasse dieorg.apache.struts2.interceptor.ServletRequestAware implementieren.

Wenn der Interceptor von Struts 2 'servlet-config erkennt, dass eine Action-Klasse in derServletRequestAware-Schnittstelle implementiert ist, übergibt er über diesetServletRequest()-Methode einenHttpServletRequest-Verweis auf die angeforderte Action-Klasse .

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

Für die Dokumentation zu Struts 2 wirdServletRequestAware anstelle vonServletActionContext empfohlen.