web.xml中的context-param参数:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
在Action中获取context-param的方法:
public String index(){
System.out.println(ServletActionContext.getServletContext().getInitParameter("contextConfigLocation"));
return SUCCESS;
}
ServletActionContext.getServletContext()源码:
public static ServletContext getServletContext() {
return (ServletContext) ActionContext.getContext().get(SERVLET_CONTEXT);
}
找到常量SERVLET_CONTEXT:
/**
* Constant for the {@link javax.servlet.ServletContext servlet context} object.
*/
public static final String SERVLET_CONTEXT = "com.opensymphony.xwork2.dispatcher.ServletContext";
发现ServletActionContext.getServletContext()其实质就是javax.servlet.ServletContext servlet context.
由此我们可以知道获取request 和 response对象的方法:
HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);