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.