O'Reilly logo

Java Enterprise in a Nutshell, Third Edition by William Crawford, Jim Farley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Struts Plug-ins

Struts plug-ins are used for defining operations that should occur when Struts is starting up and shutting down.

The PlugIn interface defines init() and destroy() methods that are called at the start and end of the application lifecycle. The most common plug-in is the Struts validator. But the plug-in infrastructure is a great way to get Struts to call your own initialization routines. Because the init() method is passed a reference to the Struts ModuleConfig, it is particularly helpful for initializations that require some knowledge of what’s going on within Struts. If your initialization routines are generic, you should implement them simply as a javax.servlet.ServletContextListener. In the example application, it is helpful to put a reference to the Library model into the application context. Here’s the complete LibraryPlugIn:

import javax.servlet.ServletException;
 
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
 
public class LibraryPlugIn implements PlugIn {
 
  public void destroy() {
  }
 
  public void init(ActionServlet actionServlet, ModuleConfig moduleConfig)
      throws ServletException {
    actionServlet.getServletContext().setAttribute(WebGlobals.LIBRARY_KEY,
        new Library());
  }
 
}

Now any Struts Action or JSP page can easily retrieve a reference to the singleton Library by looking it up from the application context. For example, in view/adminbooks.jsp, we can use the reference to the library ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required