Agosto 24, 2019

Creare una webapp MVC con Struts, Hibernate e Velocity

In questo articolo viene descritto come creare lo skeleton di un’applicazione web basata sul pattern MVC (Model View Controller).

Utilizzato per separare e stratificare la logica di presentazione dei dati dalla logica di business, il pattern MVC è considerato una best-practice nello sviluppo di applicazioni web. Esistono molte tecnologie che forniscono framework e soluzioni basate sul pattern MVC (Ruby on Rails, Spring-MVC, Apache Tapestry, Perl Catalyst ecc.). In questo tutorial vengono utilizzate queste tecnologie:

Apache Struts: il framework MVC di Apache Foundation
Hibernate: il framework ORM per il livello di persistenza dei dati
Apache Velocity: il framework di Apache per referenziare oggetti java a livello di presentazione (una valida alternativa alle pagine jsp, Java Server Pages)

Per completare questa guida viene fatto riferimento a precedenti articoli in cui è stato già trattato come configurare i framework Velocity e Hibernate nel contesto di un’applicazione web Struts-MVC. Viene creato un progetto web di esempio “sample-struts” utilizzando Eclipse IDE. Il livello di business dell’applicazione è rappresentato da un ipotetico cliente.

SOURCE CODE (/giuseu/struts-mvc)

GIT
git clone https://gitlab.com/giuseppeurso-eu/struts-mvc

ROADMAP

STEP 1 – Creazione progetto web in Eclipse e configurazione di Struts-MVC e Velocity
STEP 2 – Configurazione minima di Hibernate nel progetto
STEP 3 – Configurazione avanzata di Hbernate, DAO-Factory pattern sullo strato di persistenza
STEP 4 – Java POJO e mapping Hibernate
STEP 5 – Funzionalità CRUD di base

STEP 1 – Creazione progetto web in Eclipse e configurazione di Struts-MVC e Velocity

Creare un nuovo progetto struts-blank in Eclipse e configurare il framework Velocity. Seguire l’articolo qui, al termine il browser dovrebbe visualizzare una pagina di test come questa:

velocity-test-screen

Aggiungiamo una pagina index.vm in modo da mappare il base-context url http://localhost:8080/sample-struts con una pagina di benvenuto. La pagina contiene anche un link all’elenco clienti che verrà gestito più avanti.

– WebContent/pages/index.vm

<body>
	<p>WELCOME! This is a Struts-Hibernate-Velocity MVC demo</p>
	<br>
	<div>
 		<a href="./customers.do?action=multiRetrieve">--> Go to Customer List</a>
 	</div>
</body>

 

Aggiorniamo il file WebContent/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>sample-struts</display-name>
  <welcome-file-list>
    <welcome-file>pages/index.vm</welcome-file>
  </welcome-file-list>

 <!-- Something other here ...-->

</web-app>

Ecco un’estratto dell’output sul browser puntando su http://localhost:8080/sample-struts

struts-hibernate-velocity-index

STEP 2 – Configurazione minima di Hibernate nel progetto

Seguire questo articolo per completare una configurazione di base di Hibernate. Se non ci sono errori, ecco cosa appare allo startup del Tomcat.

hibernate-build-session-factory

STEP 3 – Configurazione avanzata di Hbernate, integrazione del design pattern DAO-Factory sullo strato di persistenza

Procediamo ora con l’integrazione del pattern DAO-Factory all’interno del progetto. Seguire questo articolo, il layout di progetto dovrebbe presentarsi così:

dao-factory-hibernate-project-layout

STEP 4 – Java POJO e mapping Hibernate

Continuiamo con l’implementazione dell’oggetto POJO relativo al cliente e al mapping ORM su Hibernate. Seguire questo articolo. Ecco come dovrebbe presentarsi il nuovo layout di progetto.

pojo-hibernate-project-layout

STEP 5 – Funzionalità CRUD di base

L’ultima parte di questa guida riguarda l’implementazione delle funzionalità di inserimento, modifica, visualizzazione e cancellazione di un cliente. Seguire questo articolo. Di seguito due screenshot sulla visualizzazione elenco clienti e aggiornamento cliente.

– Elenco clienti

struts-hibernate-velocity-multi-customer

 

– Visualizzazione/Aggiornamento singolo cliente

struts-hibernate-velocity-single-customer

 

Related posts

Leave a Reply

Your email address will not be published.