La Bean taglib è stata creata per permettere alle viste (JSP) di accedere ai JavaBeans e alle proprietà loro associate. Inoltre, grazie a questi tag possiamo definire nuovi bean accessibili all'interno di una pagina attraverso variabili di script e attributi con scope di pagina. Ecco un elenco di alcuni di questi tag:
Tag | Descrizione |
---|---|
Cookie |
Permette l'accesso al valore di uno specifico request cookie |
Define |
Definisce una variabile sulla base del valore di uno specifico bean property |
Header |
Definisce una variabile sulla base del valore di uno specifico request header |
Include |
Permette di includere una pagina generata da un'action o ad un URL esterno |
page |
Espone come bean un oggetto dal contesto della pagina specificata |
parameter |
Permette di accedere al valore di un parametro di richiesta |
resource |
Rende disponibile il valore di una risorsa di una web application |
Il tag <bean:message>: la gestione dei messaggi
Il tag <bean:message>
, anche se sembra estraneo alle funzionalità della libreria di tag Bean, è uno dei tag più diffusi di Struts. La sua funzione è quella di prendere un messaggio internazionalizzato per l'area locale del client tramite la Key del messaggio specificata e lo scrive nell'output. Si usa nel seguente modo:
<bean:message key="..."/>
Alcune librerie di Java permettono il supporto della lettura di risorse di messaggi da una classe Java o da un file di proprietà. La classe di partenza è la java.util.ResourceBundle. Struts estende questa funzionalità tramite la org.apache.struts.util.MessagesResources
.
Per fissare le idee riprendiamo l'esempio dello struts-blank. La Jsp finale non contiene nessun messaggio ma solo dei tag bean message con le rispettive key:
<bean:message key="welcome.heading"/>
<bean:message key="welcome.message"/>
I messaggi sono specificati tramite una key nel file message.propeties
nel seguente modo:
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.)
Per creare un message resource con struts, basta creare un file .properties
nella cartella WEB INF e dichiarare il nome nello struts-config
nel seguente modo:
<message-resources parameter="MessageResources" />
Questa funzionalità oltre a suddividere le varie responsabilità ai singoli componenti, risulta molto utile quando vogliamo internazionalizzare la nostra applicazione ma di questo ci occuperemo nelle lezioni successive facendo un esempio.