Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I Plugin

Estendere il controller di Struts
Estendere il controller di Struts
Link copiato negli appunti

I Plugin di Struts sono estensioni modulari del controller di Struts. Introdotti con Struts 1.1, sono definiti dall'interfaccia org.apache.struts.action.Plugin. Risultano utili quando si allocano risorse o si preparano connessioni a database o su risorse JNDI.

Questa interfaccia definisce due metodi init() e destroy(), ovvero i metodi del ciclo di vita dei Plugin.

init()

Il metodo init() rappresenta l'inizio della vita del plugin: viene invocato quando il container di JSP/Servlet avvia l'applicazione Web contenente il Plugin. Esaminiamone la firma:

public void init(ActionServlet servlet,
                 ApplicationConfig applicationConfig
                ) throws javax.servlet.ServletException;

Quando viene lanciato, il metodo init() riceve un riferimento all'ActionServlet e all'ApplicationConfig e viene utilizzato per caricare e inizializzare risorse necessarie al Plugin.

Il riferimento ad ActionServlet permette di referenziare le informazioni del Controller mentre l'oggetto ApplicationConfig fornisce l'accesso alle informazioni di configurazione che descrivono l'applicazione Struts.

destroy()

Il metodo destroy() termina la vita del Plugin: viene invocato ogni volta che il container di JSP/Servlet arresta l'applicazione Web contenente il Plugin. Questo metodo risulta molto utile perché ci sonsente di rilasciare le risorse allocate dal metodo init(). La sua firma è molto semplice:

public void destroy();

Creare un Plugin

Ecco i passi necessari alla creazione di un Plugin:

  • Creare una classe che implementi l'interfaccia org.apache.struts.action.Plugin
  • Aggiungere un costruttore di default vuoto
  • Implementare i metodi init() e destroy()
  • Compilare il Plugin e spostarlo nel classpath dell'applicazione Web
  • Aggiungere l'elemento <plug-in> al file struts-config.xml

Ecco un esempio di plugin (Vedi codice completo):

public void init(ActionServlet servlet, ModuleConfig applicationConfig) throws javax.servlet.ServletException {
  System.out.println("---->The Plugin is starting<----");
  Properties properties = new Properties();
  try {
    File file = new File("c:/info/startup.info");
    // Crea l'input stream
    FileInputStream fis = new FileInputStream(file);
    // Carica le proprietà
    properties.load(fis);
    ServletContext context = servlet.getServletContext();
    // ...

L'obiettivo di questo Plugin è quello di rendere disponibili un set di proprietà all'avvio dell'applicazione. Per testarlo non ci resta che:

  • Compilare e includere la classe del Plugin nel classpath (spostando il file in una cartella dell'applicazione, nel nostro caso si chiama esempio)
  • Aggiungere l'elemento <plug-in> al file di configurazione struts-config.xml
  • Riavviare l'applicazione.

Ecco come appare il file struts-config.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
  <form-beans>
    <form-bean name="lookupForm" type="esempio.LookupForm" />
  </form-beans>
  <action-mappings>
    <action path="/Lookup" type="esempio.LookupAction" name="lookupForm" >
      <forward name="success" path="/quote.jsp" />
      <forward name="failure" path="/index.jsp" />
    </action>
  </action-mappings>
  <plug-in className="esempio.EsempioPlugin" />
</struts-config>

Ti consigliamo anche