2.1. Using Plug-ins for Application Initialization
Problem
You want to load initial data into the application context when your application starts up.
Solution
Create a class that implements the
org.apache.struts.action.PlugIn
interface and
specify the plug-in
element in the
struts-config.xml. The following XML fragment
shows a plug-in declaration and a nested
set-property
element for setting a custom
property:
<plug-in className="com.oreilly.strutsckbk.CustomPlugin" > <set-property property="customData" value="Hello from the plugin"/> </plug-in>
Discussion
Struts
provides a PlugIn
interface you can use to create custom services that are initialized
on application startup. The Java source for the
PlugIn
interface is shown in Example 2-1. (For clarity, the JavaDoc documentation has
been removed from this listing.)
Example 2-1. The Struts PlugIn interface
package org.apache.struts.action; import javax.servlet.ServletException; import org.apache.struts.config.ModuleConfig; public interface PlugIn { public void destroy( ); public void init(ActionServlet servlet, ModuleConfig config) throws ServletException; }
To implement a
plug-in,
you only need to implement this interface and declare the plug-in
implementation in the
struts-config.xml
file. The two methods that must be implemented, init()
and destroy( )
, are called during the
lifecycle of the plug-in. Struts calls the init( )
method after it instantiates the plug-in on startup of the
ActionServlet
. Struts calls the destroy()
method when ...
Get Jakarta Struts Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.