Java  »  Articoli  »  Struts 

Introduzione a Struts 2

di: Luca Santaniello     01 Dicembre 2008

<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
  <package name="html" extends="struts-default">
    <action name="HtmlAction" class="it.html.action.HtmlAction">
      <result name="giorno">/jsp/giorno.jsp</result>
      <result name="notte">/jsp/notte.jsp</result>
    </action>
  </package>
</struts>

Il nostro file struts.xml contiene soltanto la Action HtmlAction, il cui package è HTML. La Action prevede due possibili comandi di uscita (result): giorno e notte. Se il metodo execute restituisce la stringa "giorno", verrà caricata la pagina giorno.jsp, se il metodo execute restituisce la stringa "notte", verrà caricata la pagina notte.jsp. Sarà possibile richiamare la Action mediante il seguente URL: html/HtmlAction, che corrisponde alla concatenazione package-nome.

package it.html.action;

import java.util.Calendar;
import com.opensymphony.xwork2.ActionSupport;

public class HtmlAction extends ActionSupport
{
  private static final long serialVersionUID = -4383906363325947941L;
  
  public String execute() throws Exception
  {
    Calendar cal = Calendar.getInstance();
    int ora = cal.get(Calendar.HOUR_OF_DAY);
    
    if (ora > 16 || ora < 5)
      return "notte";
    else
      return "giorno";
  }
} 

Il codice della nostra Action è semplicissimo e ci serve soltanto come esempio. Il metodo execute deve restituire una stringa: se l'orario è superiore alle ore 16 ed inferiore a 5, restituisce notte, altrimenti restituisce giorno.

Uno dei concetti nuovi di Struts 2 è rappresentato dagli Interceptor, classi stateless (che non mantengono uno stato tra invocazioni successive) che possono essere invocate prima e dopo una Action, o un insieme qualuque di Action.

Gli interceptors svolgono lo stesso compito dei filtri, infatti, entrambi implementano il pattern "interceptor". Usando questi interceptors è possibile, per esempio, validare l'input, intercettare eccezioni e così via. Il framework dispone di numerosi interceptor predefiniti, ciascuno dei quali può essere inserito in uno stack. L'ordine di esecuzione dei diversi interceptors è dato dal loro ordine di dichiarazione nello stack. La filosofia utilizzata è quella FIFO, chi è dicharato per primo, viene eseguito per primo.

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti