Corso Framework Struts (1) 2

Slides:



Advertisements
Presentazioni simili
Elaborazione di Franco Grivet Chin
Advertisements

Applet Java.
Informatica Recupero debito quarto anno Terzo incontro.
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
Consumare Web Service Andrea Saltarello
PHP.
Sistema di gestione flussi documentali
Java Enterprise Edition (JEE)
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
1 Semantica Operazionale di un frammento di Java: lo stato.
Università degli Studi di Modena e Reggio Emilia
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Analisi dettagliata e design B. Pernici M.G. Fugini AA
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
eliana minicozzi linguaggi1a.a lezione2
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Un framework per il pattern MVC
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Elaborazione di Franco Grivet Chin
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Corso Java/J2EE per PM/software architect Struts 2
Corso Java/J2EE per PM/software architect Servlet
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net View State e controlli Elaborazione di Franco Grivet Chin.
Corso di PHP.
Introduzione alla modellazione di sistemi interattivi
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Page 1. Page 2 Gestione Rendite La soluzione Kirey Architettura.
Progettazione multimediale
Riservato Cisco 1 © 2010 Cisco e/o i relativi affiliati. Tutti i diritti sono riservati.
Test Reti Informatiche A cura di Gaetano Vergara Se clicchi sulla risposta GIUSTA passi alla domanda successiva Se clicchi sulla risposta ERRATA passi.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Data Access Layer.
Creare pagine web Xhtlm. Struttura di una pagina.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Amministrazione della rete: web server Apache
Ant Che cos’è Come si utilizza Funzionalità principali
Progettare corsi con Moodle
METODI DI RAPPRESENTAZIONE TECNICA
Lezione 8.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
N4N Platform Architecture PA Inside outlook.
La Piattaforma del Credito Approfondimenti - integrazione Bergamo, 16 marzo 2010.
Programmazione ad oggetti
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
Servizi Internet Claudia Raibulet
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Eprogram informatica V anno.
Monitoring applicativo SaaS Tutorial 30/09/2015. Finalità Il monitoraggio applicativo per verificare, quantificare e controllare l’automazione introdotta.
Syncroweb S.a.s. Consulenza Software. La Ditta Syncroweb è una società di ingegneria del software e servizi informatici. Nuova nata con l’esperienza acquisita.
Transcript della presentazione:

Corso Framework Struts (1) 2 Elaborazione di Franco Grivet Chin Data 16/06/2009 Corso Framework Struts - Grivet Chin Franco

Framework Framework (infrastruttura) è una struttura di supporto su cui un software può essere organizzato e progettato. Ha le seguenti caratteristiche E’ una piattaforma che velocizza la costruzione di applicazioni del dominio a cui si rivolge grazie al riuso della soluzione architetturale che ne costituisce la struttura Risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili Si estendono le classi del framerwork e/o se ne implementano le interfacce; sono i componenti del framework che hanno la responsabilità di controllare il flusso elaborativo. sono le classi del framework che invocano il nostro codice applicativo e non viceversa come nel caso delle librerie di classi Utilizza i design pattern Corso Framework Struts - Grivet Chin Franco

Framework VS Librerie Una libreria contiene funzioni o routine (metodi) che l’applicazione può invocare Framework fornisce componenti generici che collaborano tra loro che possono essere estesi (punti di estensione) per fornire nuove funzionalità Lo sviluppatore non scrive codice per coordinare le componenti. Losviluppatore deve determinare le componenti che aderendo alla logica collaborativa del framework verranno coordinate da quest'ultimo Il framework assume il controllo della applicazione e non il contrario! Corso Framework Struts - Grivet Chin Franco

Open source framework Sono stati tra i principali elementi di innovazione nelle architetture web negli ultimi anni Hanno rappresentato il principale veicolo dell’esperienza “collettiva” degli sviluppatori in termini di design & architectural pattern, idioms,best practices Rispetto ai framework in-house (realizzati ad hoc) hanno una contribuzione di sviluppo più ampia e quindi una maggiore velocità di convergenza alla soluzione “migliore” per il dominio specifico Per uno sviluppatore/architetto la competenza su framework e librerie Open Source è fondamentale Corso Framework Struts - Grivet Chin Franco

Vantaggi di un framework Disegno architetturale Un framework è fondato su un disegno architetturale valido, in quanto il suo codice è scritto in base alle best-practices della tecnologia in uso. Riduzione dei tempi di progetto Lo sviluppatore deve implementare esclusivamente la logica applicativa potendo risparmiare le energie e il tempo necessari alla scrittura di componenti infrastrutturali. Semplificazione dello sviluppo Semplifica lo sviluppo applicativo perché fornisce tutta una serie di componenti che risolvono la gran parte dei compiti comuni a tutte le applicazioni web J2EE (controllo del flusso, logging, gestione messaggi di errore, custom tags per la presentation logic, internazionalizzazione, validazione dei dati, etc..) Corso Framework Struts - Grivet Chin Franco

Scelta del framework Maturità del progetto Sconsigliabile adottare un framework che sia in una fase iniziale di sviluppo e che sia poco adottato nella comunità degli sviluppatori e quindi poco testato sul campo in progetti reali. Documentazione Verificare che la documentazione sia ricca e ben fatta. Questo facilita la risoluzione dei problemi che si incontrano nella realizzazione dell'applicazione e la comprensione del suo funzionamento. Validità del disegno architetturale Verificare che sia disegnato correttamente e quindi che siano adottati i design-pattern e le best-practises della tecnologia di riferimento. Adozione degli standard Un framework deve essere fondato sui componenti standard della tecnologia di riferimento. Evitare framework conuso di specifici tool di sviluppo o un modello troppo indirizzato ad uno specifico caso applicativo Estensibilità Deve essere possibile estenderne le funzionalità per adattarlo alle alle proprie esigenze. Corso Framework Struts - Grivet Chin Franco

Web Application modello 2 E’ il modello utilizzato per lo sviluppo delle applicazioni Java/J2EE prima del’avvento dei framework. Si contrappone al modello 1 in cui si aveva solo servlet e Model o peggio JSP e model Web / Servlet Container Business Model Richiesta Servlet dispatch JSP Risposta Browser Corso Framework Struts - Grivet Chin Franco

Web Application Framework un sistema software che fornisce struttura e comportamento generalizzati di task e workflow tipici delle applicazioni web. Es: gestione della navigazione (MVC), gestione dell’accesso ai dati (DAO), … Nella “vita reale” per la realizzazione di web application è tipico l’utilizzo congiunto di diversi framework open source specializzati in aspetti specifici Ci concentreremo su alcuni di quelli più diffusi che “lavorano” bene insieme Struts (1) 2 (per la parte View e Controller) Spring (per l’IOC – Inversion of Control) Hibernate (per la parte di Model – ORM ) Jquery ( per la parte di front-end Web 2.0 , Ajax ) Corso Framework Struts - Grivet Chin Franco

Struts storia STRUTS 1.x.x Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache Jakarta ma ora è divenuto un progetto a sé. Struts estende le Java Servlet, aiutando all'utilizzo del pattern Model-View-Controller Ideato da Craig McClanahan donato alla Apache Software Foundation nel maggio del 2000. Corso Framework Struts - Grivet Chin Franco

STRUTS 1 e 2 Struts 1 E’ un insieme di classi ed interfacce che costituiscono l'infrastruttura per costruire web application Java EE conformi al design pattern Model 2 (MVC) Il suo ideatore è Craig McClanahan ed è stato donato alla Apache Software Foundation nel maggio del 2000 da parte di IBM. E’ uno dei web application framework più diffusi al mondo Struts 2 Nonostante il nome, Struts 2 non è solo una nuova release di Struts è un framework completamente nuovo basato su WebWork Sono state introdotte caratteristiche non presenti in Struts grazie ai feedback di migliaia di sviluppatori Struts e Struts 2 sono piuttosto diversi è importante conoscerli entrambi perchè il primo è ancora molto diffuso Corso Framework Struts - Grivet Chin Franco

Struts1 class diagram Corso Framework Struts - Grivet Chin Franco

Struts 1 sequence diagram Corso Framework Struts - Grivet Chin Franco

Struts1 componenti principali Struts-config.xml fornisce alla ActionServlet, in base ai parametri della URL La Action da invocare La pagina JSP a cui inoltrare la richiesta ActionServlet: il controller di Model 2 Action: il Model di Model 2 (Classe base per le classi “action” ) ActionForm: delle classi che contengono i dati inviati da un form Le classi action sono responsabili di Interfacciarsi con il layer sottostante (es: EJB, DAO, …) Recuperare i dati da un ActionForm da presentare alla View e inserirli in un contesto (request, session, application) Le pagine JSP sono responsabili di Recuperare i dati da visualizzare dal contesto Visualizzare i dati Corso Framework Struts - Grivet Chin Franco

Esempio di Struts-config per struts 1 <form-beans> <form-bean name=”projectForm” type=”it.uniroma2.app.form.ProjectListForm”/> </form-beans> <action-mappings> <action path=”/tasklist” type=”it.uniroma2.app.action.ProduceTaskListAction” name=”projectForm” scope=”request” validate=”true” input=”/jsp/Project.jsp”> <forward name=”success” path=”/jsp/TaskList.jsp”/> <forward name=”failure” path=”/jsp/ServerErrors.jsp”/> </action> </action-mappings> Corso Framework Struts - Grivet Chin Franco

Struts 2 La versione 2 di Struts risulta profondamente rinnovata rispetto alla precedente. In realtà il progetto è nato con il nome di WebWork, che non ha nessun legame particolare con la versione 1 di Struts, per poi passare, dopo una prima fase di analisi e sviluppo, al nome Struts 2. Per questo motivo la migrazione dalla versione 1 alla versione 2 non è semplice. Utilizzando il nuovo framework è possibile scrivere software facilmente manutenibile, solido e aderente al pattern MVC. La versione attualmente stabile è la 2.3.4. Il sito ufficiale del progetto è struts.apache.org, dal quale è possibile scaricare sia le librerie, che la documentazione. Corso Framework Struts - Grivet Chin Franco

Struts 2-. Servlet Filter La Servlet API a partire dalla versione 2.3 mette a disposizione i Servlet Filters. Possono essere utilizzati per moltissimi scopi, alcuni esempi: tracciatura e Logging delle attività utente, localizzazione, compressione dati, autenticazione. Sono delle particolari classi Java che consentono di filtrare le richieste del browser verso le Servlets di una web applications e la risposta della Servlet al browser. Corso Framework Struts - Grivet Chin Franco

Struts 2-. Servlet Filter La “filtratura” avviene intercettando la richiesta HTTP in modo da poterla manipolare, prima che questa arrivi alla Servlet destinataria o modificando la risposta prima di essere ritornata al browser. Una classe per poter essere utilizzata come filtro deve implementare l’interfaccia javax.servlet.Filter, che definisce tre metodi di base: init(FilterConfig fc) doFilter(ServletRequest req, ServletResponse res, FilterChain chain) destroy() Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   <filter>     <filter-name>struts</filter-name>     <filter-class>       org.apache.struts2.dispatcher.FilterDispatcher     </filter-class>   </filter>   <filter-mapping>     <filter-name>struts</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>   <welcome-file-list>     <welcome-file>index.jsp</welcome-file>   </welcome-file-list> </web-app> Corso Framework Struts - Grivet Chin Franco

Struts 2 differenze con Struts 1 Vediamo in evidenza le differenze principali rispetto alla versione precedente. web.xml Struts: Il controllo viene affidato ad una Servlet. Di default alla ActionServlet ma è possibile definire una Action personalizzata Struts 2: Il controllo viene affidato ad un Filter. Di default al FilterDispatcher ma è possibile definire un Filtro personalizzato URI pattern Struts: Di default viene utilizzato il pattern *.do per identificare una richiesta che la ActionServlet prenderà in carico Struts 2: Di default viene utilizzato il pattern *.action per identificare una richiesta che il FiltroDispatcher prenderà in carico File di configurazione Struts: Di default il nome del file di configurazione è struts-config.xml che va posizionato allo stesso livello del file web.xml Struts 2: Di default il nome del file di configurazione è struts.xml che va posizionato in una directory del classpath Corso Framework Struts - Grivet Chin Franco

Struts 2 differenze con Struts 1 Mapping delle Action Struts: Il mapping di una Action viene definito nel file di configurazione mediante il tag action-mapping Struts 2: Il mapping di una Action viene automaticamente generato dalla concatenazione "package-nome della action", entrambi definiti nel file di configurazione Proprietà di una Action Struts: Le proprietà necessarie ad una Action vengono definite in una classe ActionForm, nella quale occorre definire anche i metodi get e set Struts 2: Le proprietà necessarie vengono definite direttamente nella Action nella quale occorre definire anche i metodi get e set Action Struts: Una Action deve estendere la classe org.apache.struts.action.Action Struts 2: Una Action deve implementare l'interfaccia com.opensymphony.xwork2.Action oppure estendere la classe com.opensymphony.xwork2.ActionSupport che, a sua volta, è un'implementazione di Action Corso Framework Struts - Grivet Chin Franco

Struts 2 differenze con Struts 1 Metodo execute Struts: Il metodo execute di una Action restituisce un ActionForward Struts 2: Il metodo execute di una Action restituisce una stringa. Il Controller stabilisce, in base alla stringa restituita, qual è la vista da richiamare TagLibrary Struts: Sono disponibili diverse taglibrary, suddivise per tipo di argomento trattato (logic, bean, HTML) Struts 2: È disponibile un'unica taglibrary che mette a disposizione sia operazioni di logica che di rendering HTML Corso Framework Struts - Grivet Chin Franco

Struts 2 Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Prima di tutto aggiungiamo le seguenti librerie al nostro progetto, incluse nello zip completo scaricabile dal sito ufficiale del progetto: commons-logging-1.0.4.jar freemarker-2.3.8.jar ognl-2.6.11.jar struts2-core-2.0.12.jar xwork-2.0.6.jar Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Nel file web.xml, oltre alle usuali dichiarazioni, è necessario definire un filtro al quale vengono affidate tutte le richieste. Questo filtro rappresenta il Controller dell'applicazione. Naturalmente è necessario indicare anche l'URL al quale esso risponde. Nel nostro esempio, utilizziamo la classe di default messa a disposizione dal framework, org.apache.struts2.dispatcher.FilterDispatcher Nel nostro esempio il filtro viene invocato su tutte le URL (/*) che hanno come suffisso l'estensione .action (default). È possibile comunque configurare diversamente il filtro, indicando un pattern diverso da quello di default. Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   <filter>     <filter-name>struts</filter-name>     <filter-class>       org.apache.struts2.dispatcher.FilterDispatcher     </filter-class>   </filter>   <filter-mapping>     <filter-name>struts</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>   <welcome-file-list>     <welcome-file>index.jsp</welcome-file>   </welcome-file-list> </web-app> Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Ogni richiesta intercettata dal Controller viene inoltrata ad una Action, una classe Java che implementa l'interfaccia com.opensymphony.xwork2.Action. L'unico metodo da dover implementare è execute(), che viene invocato automaticamente dal framerwork nel momento in cui il Controller inoltra la richiesta alla Action. È possibile anche estendere la classe com.opensymphony.xwork.ActionSupport, un'implementazione di Action, dalla quale è possibile ereditare un insieme di metodi e attributi di grande utilità nello sviluppo, quali gestione degli errori, dei messaggi e così via. Corso Framework Struts - Grivet Chin Franco

Struts 2 Anche la versione 2 di Struts, così come il suo predecessore, prevede un file di configurazione: struts.xml . Il file deve essere posizionato nel classpath della webapp. Il posto più appropriato ove inserirlo è in /WEB-INF/classes/struts.xml. Tale file contiene la definizione di tutte le Action disponibili nel sistema. Ciascuna Action è identificata da un package, da un nome univoco e da uno o più destinazioni (result). Il result verrà utilizzato dal Controller per decidere qual è la vista appropriata da richiamare. Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="Menu"> <! -- appartiene al package di default -- > <result>/menu/Menu.jsp</result> </action> </package> <! -- xm diviso in più parti -- > <include file="manning/chapterTwo/chapterTwo.xml"/> </struts> Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Constant serve per impostare prorietà del framework Il valore devMode=“true” abilita automaticamente un livello di informazioni di debugging e anche il ricaricamento delle varie risorse a ogni request Il processo di mapping è semplice: http:// + server:porta + /contesto + / package namespace + / azione.action http://localhost:8080/Struts2InAction/chapterTwo/HelloWorld.action i package dividono le action in zone logiche e gli associano un path Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Ruolo delle azioni Racchiudere la logica di business public String execute() { setCustomGreeting( GREETING + getName() ); return "SUCCESS"; } Permettere il data transfer private String name; public String getName() {return name;} public void setName(String name) {this.name = name;} Restituire una stringa per il routing del result (view) <action name="HelloWorld" class="manning.chapterOne.HelloWorld"> <result name="SUCCESS">/chapterTwo/HelloWorld.jsp</result> <result name="ERROR">/chapterTwo/Error.jsp</result> </action> Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Packages I package di Struts 2 sono simili concettuamente ai package di Java. Forniscono un meccanismo per raggruppare le azioni in base a funzionalità comuni o a dominio. NOTA: E’ possibile avere lo stesso namespace in più di un package In tale caso le azione dei due package mappano lo stesso namespace. Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Packages Namespace di default: è quello che ha come namespace “”; se un’action viene chiamata su un namespace e non viene trovata , viene ancora cercata nel namespace di default Namespace di root: è quello che ha come namespace “/”; viene trattato come tutti gi altri namespace extends: è fondamentale per fare in modo che un package “erediti” la logica (interceptor, etc.) ad esempio del package già presente che si chiama “struts-default” che dichiara moltissimi componenti standard (si trova nel struts2-core.jar) ad esempio l’interceptor che si ocupa del popolamento dei parametri della action Corso Framework Struts - Grivet Chin Franco

Struts 2 in pratica Action Le Action normalmente implementano l'interfaccia com.opensymphony.xwork2.Action oppure estendono la classe com.opensymphony.xwork2.ActionSupport che, a sua volta, è un'implementazione di Action Nota: potrebbe essere sufficiente avere una classe normale che espone un metodo execute conforme La Action Interface fornisce anche costanti: public static final String ERROR "error" public static final String INPUT "input" public static final String LOGIN "login" public static final String NONE "none" public static final String SUCCESS "success" Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica Action Ad esempio la pass-through action: <action name="Name"> <result>/chapterOne/NameCollector.jsp</result> </action> Non specifica la classe ; Struts2 fonisce ua action di default anche se non lo specifichiamo con un metodo execute vuoto che restituisce SUCCESS che è anche il default dell’attributo name de tag result (convention over configuration) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica Validazione di base La classe ActionSupport fornisce una validazione di base, poichè implementa Validateable che lavora con il DefaultWorkflowInterceptor Quando il workflow interceptor scatta, cerca un metodo validate() sulla action da invocare. public class Register extends ActionSupport { …. public void validate(){ PortfolioService ps = getPortfolioService(); if ( getPassword().length() == 0 ){ addFieldError( "password", "Password is required.") ); }…..} Dopo l’esecuzione del validate il controllo ritorna al workflow interceptor che veirifica se ci sono messagi di errore (il metodo è void); se sì termina l’esecuzione della action e torna all’input form Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica Validazione di base L’interfaccia ValidationAware fornisce I metodi per memorizzare e recuperare I messaggi. L’iterfaccia è implementata da ActionSupport addFieldError ( String fieldName, String errorMessage ) addActionError ( String errorMessage ) Nel stut.xm si defiisce la view a cui si deve ritornare , ovvero il result con name “input” <action name="Register" class="manning.chapterThree.Register"> <result>/chapterThree/RegistrationSuccess.jsp</result> <result name="input">/chapterThree/Registration.jsp</result> </action> Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica Validazione di base E’ possibile utilizzare un file di properties per recuperare i messaggi di errore public void validate(){ PortfolioService ps = getPortfolioService(); if ( getPassword().length() == 0 ){ addFieldError( "password", getText("password.required") ); } Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Struts 2 in pratica Object-backed JavaBeans properties public String execute(){ getPortfolioService().createAccount( user ); return SUCCESS; } private User user; public User getUser() { return user; Nel Form <s:textfield name="user.username" label="Username"/> Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

www.altran.it Titolo Presentazione / Data / Confidenziale / Elaborazione di ...