Use Velocity to generate HTML based email
import java.io.StringWriter; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; public class EmailDemo { public static void main( String[] args ) throws Exception { /* * first, get and initialize an engine */ VelocityEngine ve = new VelocityEngine(); ve.init(); /* * organize our data */ ArrayList list = new ArrayList(); Map map = new HashMap(); map.put("name", "Cow"); map.put("price", "$100.00"); list.add( map ); map = new HashMap(); map.put("name", "Eagle"); map.put("price", "$59.99"); list.add( map ); map = new HashMap(); map.put("name", "Shark"); map.put("price", "$3.99"); list.add( map ); /* * add that list to a VelocityContext */ VelocityContext context = new VelocityContext(); context.put("petList", list); /* * get the Template */ Template t = ve.getTemplate( "./src/email_html.vm" ); /* * now render the template into a Writer, here * a StringWriter */ StringWriter writer = new StringWriter(); t.merge( context, writer ); /* * use the output in the body of your emails */ System.out.println( writer.toString() ); } } ------------------------------------------------------------------------------------- <HTML> <HEAD> <TITLE>Pet Store Sale!</TITLE> </HEAD> <BODY> <CENTER> <B>$petList.size() Pets on Sale!</B> <BR/> This is an email generated by velocity <BR/> This month only, choose from : #set( $count = 1 ) <TABLE> #foreach( $pet in $petList ) <TR> <TD>$count)</TD> <TD>$pet.name</TD> <TD>$pet.price</TD> </TR> #set( $count = $count + 1 ) #end </TABLE> <I>Call Today!</I> Bests <br> www.java2s.com </CENTER> </BODY> </HTML>
1. | Velocity works With HTML | ![]() | |
2. | Use Velocity to generate HTML document | ![]() | |
3. | Velocity Generate Document: anakia task | ![]() |