Java  »  Articoli  »  JSP e servlet 

Custom Tag per rappresentazione dati

di: Pasquale Congiustì     16 Giugno 2008

Nell'articolo dedicato a Jakarta POI ci siamo occupati di definire un elemento capace di effettuare l'export di dati in forma di documento excel. Attraverso l'introspezione siamo inoltre riusciti ad astrarre il concetto ad altissimo livello, facendo si che la definizione del tipo concreto fosse un'operazione eseguita a runtime, con l'evidente vantaggio di poter utilizzare la logica software prodotta con ogni classe.

L'idea di esportare i dati e di creare logiche software riutilizzabili, può diventare un potente strumento a disposizione degli sviluppatori, permettendo loro di utilizzare sempre lo stesso strato di logica senza preoccuparsi di ridefinire il comportamento di rappresentazione in base al tipo concreto che ogni volta si presenta. Il caso della rappresentazione in tabella excel, cioè di elenco in forma schematica ben si presta a questo tipo di idealizzazione. In ambito Web, prima ancora che l'export dei dati in formati standard, ci preoccuperemo della rappresentazione dell'elenco in HTML. Ma una tabella HTML non si presta a seguire lo stesso discorso fatto per una tabella excel? La risposta è affermativa ed è il contenuto di questo articolo.

Attraverso l'idea sviluppata nello scorso capitolo creeremo un componente custom tag che si occupa di definire la formattazione HTML di una tabella. Riutilizzeremo gli stessi concetti di introspezione, mostrando alla fine come sia possibile rappresentare una collezione di elementi indipendentemente dal loro tipo dinamico.

Implementazione Custom Tag

Come vedremo nel dettaglio del codice sorgente, utilizzeremo il custom tag per la formattazione degli elenchi, utilizzando quella classe ReflectionUtils e i suoi metodi, molto utili per gestire la logica di introspezione. Inoltre riprenderemo la classe prodotta per la creazione del documento excel, fornendo un link per effettuare l'operazione di export dei dati direttamente dalla Web application.

Alla fine avremo quindi una pagina Web con una tabella rappresentante i dati di una collezione di oggetti e un link che si occupa di effettuare l'export in excel degli stessi dati.

Per la creazione del custom tag, creeremo una classe che estende la classe TagSupport:

Listato 1. Definisce la logica per la produzione di un semplice custom tag

package it.html.tabletag;
...
//riproduce la formattazione automatica degli elementi passati in una collezione


public class TableExporter extends TagSupport {
  //L'attributo viene utilizzato per definire uno stile
  private String className;
  //L'attributo viene utilizzato per definire il nome utente
  private Collection list;
  //Metodi getter and setter
  public String getClassName() {
    return className;
  }

  public void setClassName(String className) {
    this.className = className;
  }
  
  public void setList(Collection list){
    this.list = list;
  }

  public Collection getList(){
    return(list);
  }
...
}

Le variabili di istanza sono la Collection, contenitore degli elementi da rappresentare, e il nome del foglio di stile, in modo da formattare la rappresentazione con un foglio CSS. Nello spezzone di codice vediamo anche i relativi metodi get e set.

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti