Section 19.8. Struts Plug-ins


19.8. 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 to loop through the books:

 <c:forEach var="book" items="${library.bookList}"> 

This is a trivial example, but as you can see, implementing a Struts PlugIn is a convenient technique for any kind of initialization routine.



Java Enterprise in a Nutshell
Java Enterprise in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596101422
EAN: 2147483647
Year: 2004
Pages: 269

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net