CERCA SITEMAP 1280
Ultimo aggiornamento: 30 Agosto 2009

Tag standard in JavaServer Faces

Lo sviluppo di applicazioni JavaServer Faces richiede un’ottima conoscenza delle librerie di tag core e html utilizzate quasi sempre contemporaneamente.
La libreria di tag html definisce tag che rappresentano i componenti HTML comunemente usati nella creazione di interfacce utente mentre la libreria core definisce tag che consentono di specificare convertitori, validatori, gestori di eventi ed in generale aspetti indipendenti dal render utilizzato.
Per utilizzare i tag è necessario fare riferimento alle libreria di tag in cima alla pagina mediante la direttiva taglib nel caso di JavaServer Page
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
o specificando i namespace nel caso di facelet

Nel caso delle pagine JSP l’attributo uri identifica univocamente il Tag Library Descriptor e l’attributo prefix viene usato per distinguere i tag a seconda della libreria di appartenenza.
Per le facelets il namespace serve allo stesso scopo cioè a identificare univocamente il TLD e a definire il prefisso da utilizzare per i tag.
Una pagina che contiene tag JSF è rappresentata da un albero di componenti, alla radice si ha un componente UIViewRoot e il tag view rappresenta questo componente sulla pagina: tutti i tag dei componenti devono essere racchiusi nel tag view

 
...
 

Tag HTML

I tag HTML possono essere raggruppati nelle seguenti categorie: input, output, command, selezione, layout, data table, errori e messaggi.

La maggior parte dei tag HTML condivide un certo numero di attributi:
  • id: contiene un identificatore univoco per il componente
  • binding: collega il componente ad un oggetto lato-server
  • rendered: un booleano che se posto a false evita che il componente venga visualizzato
  • styleClass: consente di specificare una classe CSS per determinare lo stile del componente
  • value: viene utilizzato per collegare il valore del componente ad una proprietà di un backing bean dello stesso tipo
  • valueChangeListener: permette di specificare il metodo di un backing bean che si occupa di gestire l’evento value-change sul componente
  • converter: permette di specificare un convertitore per i dati del componente
  • validator: consente di specificare un validatore per i dati del componente
  • required: un booleano che se posto a true produce un errore di validazione se l’utente non inserisce un valore
Fra questi l’attributo id è particolarmente importante perché:
  • consente di accedere a componenti JSF da altri componenti JSF
  • consente di fare riferimento a componenti all’interno di metodi java
Per quanto riguarda il primo aspetto, i tag message ad esempio prevedono la presenza di un attributo for contenente l’id del componente al quale si riferisce il messaggio:

 

Form

L’utente di una web application tipicamente invia dati mediante form.
In JavaServer Faces, un form è rappresentato dal tag h:form.
Se si inserisce in una pagina il tag h:form senza alcun attributo il render infatti produce il seguente codice html:

Di default JSF effettua il submit di un form mediante POST.

Campi testo e textarea

JavaServer Faces supporta tre tipi differenti di input testuali: h:inputText, h:inputSecret e h:inputTextarea.
h:inputText rappresenta un elemento HTML h:inputSecret rappresenta un elemento HTML h:inputTextarea rappresenta invece un elemento HTML