Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Hello World con Struts

Esaminiamo le configurazioni di una applicazione di esempio
Esaminiamo le configurazioni di una applicazione di esempio
Link copiato negli appunti

In questa lezione vediamo come su possa realizzare una applicazione di benvenuto (la classica "Hello World"), che visualizza un messaggio di benvenuto. Iniziamo ad approfondire alcuni concetti e ne lasceremo altri da trattare in seguito.

Dopo aver creato il nostro progetto J2EE con Eclipse importiamo il file struts-blank-1.x.x.war così come abbiamo visto nella lezione precedente. Ecco ciò che otteniamo lanciando l'applicazione (per esempio su TomCat):

Figura 6. Risultato dell'applicazione
Risultato dell'applicazione

In precedenza abbiamo visto come questo progettino rappresenti l'ossatura di base di una applicazione Struts. In questa lezione continueremo ad analizzare i file di questa applicazione, per comprenderne il funzionamento.

I componenti principali dell'applicazione struts-blank sono:

  • Il file WEB-INF/web.xml
  • Il file WEB-INF/struts-config.xml
  • I file .jsp (index.jsp, pages/Welcome.jsp)
  • Il file WEB-INF/classes/message.properties
  • Le api di Struts contenute nella cartella WEB-INF/lib

Il file web.xml come abbiamo detto nelle lezioni precedenti, non è un file di Struts ma il file di configurazione per ogni applicazione J2EE.

Apriamo il file e osserviamo il contenuto degli elementi <servlet> e <servlet-mapping>: è sovrapponibile alla configurazione standard già esaminata in precedenza:

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

  index.jsp

Infatti anche qui troviamo la configurazione dell'ActionServlet e la sua mappatura, con la delega alla classe ActionServlet di gestire tutti i file che abbiano estensione .do. Infine definiamo come file di partenza la vista index.jsp.

Esaminiamo quindi il file configurazione WEB-INF/struts-config.xml.

<global-forwards>
  <forward name="welcome" path="/Welcome.do"/>
</global-forwards>

Nel global-forwards diciamo che quando viene inviata una richiesta alla pagina /Welcome.do, questa viene associata ad un forward di nome welcome

<action-mappings>
  <action path="/Welcome" forward="/pages/Welcome.jsp"/>
</action-mappings>

Questa dicitura serve per configurare l'action Welcome.do definendone il forward alla pagina /pages/Welcome.jsp. Inoltre abbiamo la dichiarazione del message-resource:

<message-resources parameter="MessageResources" />

Lo struts-config della nostra piccola applicazione contiene l'esempio per la configurazione di qualsiasi componente di Struts.

Adesso passiamo alle due viste. La prima è la index.jsp:

<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<logic:redirect forward="welcome"/>

Si dichiara il tag <logic> e si effettua un forward all'action con il nome welcome configurata nello struts-config.

La pagina pages/welcome.jsp si compone invece nel seguente modo:

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<html:html>
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
<logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application">
  <font color="red">
    ERROR:  Application resources not loaded -- check servlet container
    logs for error messages.
  </font>
</logic:notPresent>
<h3><bean:message key="welcome.heading"/></h3>
<p><bean:message key="welcome.message"/></p>
</body>
</html:html>

Nelle lezioni successive chiariremo tutte le sue parti, per adesso commentiamo solo queste righe:

<h3><bean:message key="welcome.heading"/></h3>
<p><bean:message key="welcome.message"/></p>

Che servono a prelevare dei messaggi dal "message resource" per comporre la pagina Jsp al momento della compilazione. Per prelevare i messaggi basta specificare la chiave.

Infine abbiamo il file MessageResources.properties (nella cartella WEB-INF/src/java/) in cui troviamo le definizioni per tutti i messaggi con le relative chiavi.

welcome.title=Struts Blank Application
welcome.heading=Welcome!
welcome.message=To get started on your own application, copy the struts-blank.war to a new WAR file using the name for your application. Place it in your container's "webapp" folder (or equivalent), and let your container auto-deploy the application. Edit the skeleton configuration files as needed, restart your container, and you are on your way! (You can find the MessageResources.properties file with this message in the /WEB-INF/src folder.)

Questo sistema, che permette di associare i messaggi alle chiavi, risulta molto utile, specie quando vogliamo internazionalizzare l'applicazione.

Ti consigliamo anche