Newsgroup: it.comp.java
Titolo: sistema di template

Ciao,
devo progettare una sorta di sistema di template per mandare e-mail in 
automatico.
Qualcosa di questo genere: ho una serie di testi predefiniti, del tipo:
testo1 = "Caro %utente%, eccoti il documento %nomedoc% richiesto"
testo2 = "Caro %utente%, in data %datadoc% è stata registrata 
l'operazione %operazione%"
e a runtime ho una mappa contenente per ogni "tag" possibile il suo 
valore corrispondente.
Esistono classi Java / esempi di codice che mi possano aiutare in questo?
In particolare nel "parsing" dei testi in modo da sostituire 
automaticamente tutti i tag rilevati con i valori.
Ogni consiglio è bene accetto :)
Grazie.
-- 
SigiTM
Togli 'NOSPAMMM' per rispondermi.
http://it.youtube.com/profile_videos?user=sigitm

 Ogni consiglio è bene accetto :)
Uno solo...non reinventare l'acqua calda...usa Velocity.
Ciao
   Lucio
-- 
Lucio Benfante
JUG Padova           
http://www.parancoe.org
 ...have a look at it!
www.jugpadova.it
 
http://www.jugevents.org

 Uno solo...non reinventare l'acqua calda...usa Velocity.
In realtà l'invio e-mail è già gestito dal "framework" sviluppato dal 
team con cui sto sviluppando il progetto... quindi fai finta che non ti 
abbia mai parlato di e-mail ;)
(mentre mi pare di aver capito che Velocity è specializzato in quello)
Diciamo solo che devo sviluppare un "parser" che riempia le variabili di 
un testo con gli appositi valori presi da una mappa, e cercavo - se 
esiste - qualcosa di adatto allo scopo, che sia magari meglio che 
mettermi a scrivere a mano decine di "substring" e "replace" di stringhe.
Grazie


 esiste - qualcosa di adatto allo scopo
java.text.MessageFormat?
Y.


Ma ti sei almeno preso la briga di guardare cosa e' Velocity?

 (mentre mi pare di aver capito che Velocity è specializzato in quello)
No, non è solo per le email.


 Sigi ha scritto:
Velocity è un motore di template, un qualcosa cioè che ti permette di
generare del testo (ad esempio, quello di un'email) partendo da un
modello (il template, appunto) ed una mappa di valori da assegnare
alle variabili che nel modello compaiono. Non è l'unico motore di
template Java esistente, molto "gettonato" ad esempio è anche
FreeMarker: 
http://www.freemarker.org
 . Io personalmente l'ho
utilizzato in parecchi progetti e tuttora lo utilizzo, e mi ci sono
sempre trovato bene. In ogni caso, prova a dare un'occhiata ad uno di
questi, per vedere se possono fare al caso tuo. Se le tue esigenze
sono abbastanza banali, potrebbe andar bene anche utilizzare
semplicemente MessageFormat, come è già stato ricordato da altri.


 mettermi a scrivere a mano decine di "substring" e "replace" di stringhe.
Quello che descrivi è un template engine. Velocity Engine è un template
engine. Comunque ne esistono altri.
Ogni template engine ha il suo linguaggio propietario di templating,
incopatibili con il linguaggio degli altri.
Io ne so poco ma se dovessi farlo io al posto di imparare l'ennesimo
linguaggio proprietario di templating considerei l'uso quello standard
di W3C: XSLT.
Comunque nel caso in esame potrebbe essere piu' semplice usare le
espressioni regolari per risolvere il tuo problema.
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/07/colinux-linux-dentro-windows.html

 
Se si usano cose piu' semplici di Velocity (ad esempio StringTemplate), 
non vi è praticamente nulla da imparare.