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.
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.
|
AppFuse: realizzare un'applicazione completa (implementare i servizi) |
Guida Apache StrutsIl primo e più utilizzato tra i framework MVC del mondo Java,... |
Guida Java SpringScoprire il lightweight container più famoso del mondo Java.... |
Guida Java 6Prendendo le mosse dalla guida Java, già presente su HTML.it,... |
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
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |