<!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.
|
AppFuse: realizzare un'applicazione completa (implementare i servizi) |
Guida Apache StrutsIl primo e più utilizzato tra i framework MVC del mondo Java,... |
Guida Java SpringScoprire il lightweight container più famoso del mondo Java.... |
Guida Java 6Prendendo le mosse dalla guida Java, già presente su HTML.it,... |
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
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |