Chi ha programmato almeno una volta in Asp.NET, conosce già il concetto di Master Page; una pagina HTML che funziona da template, nella quale alcuni parti sono dinamiche e altre fisse.

Di base le JSP non prevedono una cosa del genere, a parte il meccanismo degli include (come PHP).

Però se usiamo un framework, e nello specifico JSF, abbiamo la possiblità di usare i template.

Vediamo un semplice esempio; una volta creato il progetto (Netbeans ci permette di includere da subito le librerie che ci servono) create una pagina che chiamiamo template.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <h:outputStylesheet name="style.css" library="css" />
    </h:head>
    <h:body>
        <div id="page">
            <div id="header">
                <ui:insert name="header" ></ui:insert>
            </div>
            <div id="content">
                <ui:insert name="content"></ui:insert>
            </div>
            <div id="footer">
                <ui:insert name="footer"></ui:insert>
            </div>
        </div>
    </h:body>
</html>

Come vedete è una semplice pagina con alcuni tag specifici.

E' da un pò che voglio scrivere questo articolo, ma tra una cosa e l'altra non ci sono mai riuscito.

Lo trovo un pò complicato, visto anche il numero di passaggi e il tempo che è passato.

Quindi ho deciso che, una volta tanto, non lo scriverò io, ma vi rimanderò al link che ho usato.

Non è nel mio stile lo sapete, ma stavolta ho seguito il concetto "perchè reinventare sempre la ruota?".

Ebbene, dopo vari mesi di offline, è uscita la terza versione del mio sito portfolio: MatteoFerrone.com.

Il lavoro ha richiesto un pò più del previsto, in quanto inizialmente lo stavo sviluppando in Java e Java Server Faces.

Oggi vediamo un semplice meccanismo per integrare la internazionalizzazione nelle nostre applicazioni Java Server Faces.

Prima di tutto consideriamo che useremo dei file di properties, formati dalla combinata chiava=valore.

Secondo poi, ogni file di lingua dovrà essere nominato in questo modo: <nome>_<lingua>.properties.

A parte quello di default al quale dovete levare la parte riguardante la lingua.

Quindi nella nostra applicazione creiamo un package (ad esempio com.mf.language) e dentro ci creiamo due file:

  • messages.properties
  • messages_en.properties

Il primo è per l'italiano, lingua di default.

Ultimamente mi sono dato allo studio del framework JSF (Java Server Faces).

Un arogmento molto richiesto è come svuotare un form dopo che è stato inviato (e magari anche validato) senza usare redirect o Javascript.

Perchè il fatto è che il comportamento di default prevede che il form non si svuoti se si rimane nella stessa pagina.

Vediamo quindi come fare; prima di tutto abbiamo un form del genere:

      <h:form id="frm_add_lavoro">
            <h:inputText value="#{lb.titolo}" id="titolo">
            </h:inputText><br/>
            <h:inputTextarea value="#{lb.testo}" id="testo">
            </h:inputTextarea>
            <h:commandButton action="#{lb.addLavoro()}" value="Aggiungi lavoro" />
        </h:form>

La cosa importante è specificare un id al form e un id per ogni componente che ci interessa, in modo da poterli richiamare nel nostro ManagedBean.