Continuando il discorso su
Struts, vediamo come avviene il dialogo tra la sezione che si occupa del controllo dell'applicazione e la sezione di visualizzazione della stessa. Il concetto fondamentale è quello di
ActionForm. Questa è una classe di collegamento tra la
Action e la pagina Web JSP. In particolare all'interno del framework:
- si analizza se esiste il mapping tra l'azione, che ha scatenato l'evento, e una actionForm;
- in caso positivo, viene creato l'oggetto actionForm e memorizzato nello scope appropriato;
- vengono quindi estratti dalla request i parametri di input e vengono memorizzati negli attributi della actionForm attraverso gli appositi metodi setter;
- infine, se nel file di configurazione l'attributo validate è true, viene chiamato il rispettivo metodo validate() della actionForm.
In generale una
actionForm corrisponde esattamente ad una pagina che esegue il POST dei dati, ma se lo si desidera, è possibile associare una
actionForm a più di una pagina Web. Una volta che questa azione è stata implementata è necessario inserire alcune linee nel file di configurazione di
Struts per fare in modo che il framework sia cosciente dell’esistenza di questa nuova
actionForm. All’interno del file, nella sezione
form-beans andranno poi aggiunte:
< form-beans >
< form-bean
name="loginForm"
type="com.test.struts.LoginForm" | >
< | form-beans >
Il nome deve essere assolutamente unico, mentre il type deve rappresentare il percorso di una classe che estende
actionForm.Successivamente è necessario associare un elemento del
form-beans appena creato alla rispettiva azione. Ad esempio potremmo aggiornare il mapping per il
loginAction visto in precedenza, nel seguente modo:
< action
path=" | login"
type="com.test.struts.action.LoginAction"
scope="request"
name="loginForm"
validate="true"
input=" | login.jsp" >
< forward name="Home" path=" | action | home "
redirect="true" | >
< | action >
Chiaramente il nome all’interno del mapping per il login deve corrispondere a quello contenuto nella sezione
form-beans.