Как получить 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.