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