Pages Navigation Menu

Coding is much easier than you think

How To Get The ServletContext In Struts 2

 
In Struts 2 , you can use the following two methods to get the ServletContext object.
 

1. ServletContextAware

 
Make your class implements the org.apache.struts2.util.ServletContextAware interface.
 
** UPDATE: Struts 2 Complete tutorial now available here.
 
When Struts 2€ “servlet-config” interceptor is seeing that an Action class is implemented the ServletContextAware interface, it will pass a ServletContext reference to the requested Action class via the setServletContext()method.
 

package com.simplecode.action;

import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;

import com.opensymphony.xwork2.Action;

public class ContextAction  implements ServletContextAware,Action {

        ServletContext context;

        public String execute() throws Exception
        {
                return SUCCESS;
        }

        public void setServletContext(ServletContext context)
        {
                this.context = context;
        }
}

 

2. ServletActionContext

 
Get the ServletContext object directly from org.apache.struts2.ServletActionContext
 

package com.simplecode.action;

import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;

public class ContextAction implements Action
{
	public String execute() throws Exception
	{
		ServletContext context = ServletActionContext.getServletContext();
		return SUCCESS;
	}
}