for (int i=0; i { Customer customer = (Customer)customers.get(i);
StringBuffer message = new StringBuffer(); message.append ("尊敬的先生/女士: "); message.append (customer.getCustName()); message.append ("/n"); message.append ("/n"); message.append ("您的帐户余额是 "); message.append (customer.getAccountTotal()); message.append ("/n"); message.append ("/n"); message.append ("致礼!"); message.append ("/n"); message.append ("某某装饰品公司");
// 发送email mm.sendMail (customer.getFirstName(), customer.getEmail(), "Account", message.toString()); } |
static public final String STR_HELLO="尊敬的先生/女士: "; static public final String STR_MESSAGE="您的帐户余额是 "; static public final String STR_BEY="致礼!/n某某装饰品公司"; |
for (int i=0; i<customers.size(); i++) { Customer customer = (Customer)customers.get(i);
// 创建一个环境,并加入所有的对象 VelocityContext context = new VelocityContext(); context.put ("CustName",customer.getCustName()); context.put ("total", new Double (customer.getAccountTotal())); context.put ("customer", customer );
// 解析模板,生成结果字符串 StringWriter message = new StringWriter(); template.merge(context, message);
// 发送email mm.sendMail (customer.getFirstName(), customer.getEmail(), "Account", message.toString()); } |
尊敬的先生/女士: $CustName
您的帐户余额是 $total 致礼! 某某装饰品公司 |
尊敬的先生/女士: $customer.CustName
您的帐户余额是 $customer.AccountTotal 致礼! 某某装饰品公司 |
int month = (new GregorianCalendar()).get(Calendar.MONTH); // 把month值加1,因为它从0开始计算 context.put ("month", new Integer(month+1) ); |
尊敬的先生/女士: $customer.CustName
您的帐户余额是 $customer.AccountTotal 致礼! 某某装饰品公司 #if ($month == 12) 祝您和您的家人圣诞节快乐! #end |
尊敬的先生/女士: $customer.CustName
#foreach ($transaction in $customer.Transactions) $transaction.Description $transaction.Amount #end 您的帐户余额是 $customer.AccountTotal 致礼! 某某装饰品公司 |
// 装入模板 Template template = Velocity.getTemplate("html.vm");
// 创建环境 VelocityContext context = new VelocityContext(); context.put ("customers",Customer.getCustomers());
// 解析模板,输出应答 ServletOutputStream output = response.getOutputStream(); Writer writer = new OutputStreamWriter (output); template.merge(context, writer); writer.flush(); |
<html> <body> <h1>客户报告</h1> #foreach ($customer in $customers) <h2>$customer.CustName<h2>
<table> #foreach ($transaction in $customer.Transactions) <tr> <td width="200"> $transaction.Date </td> <td width="150"> $transaction.Description </td> <td width="100"> $transaction.Amount </td> </tr> #end </tr> <td></td> <td></td> <td><b>$customer.AccountTotal</b></td> <tr> </table>
#end </body> </html> |
Properties props = new Properties(); props.setProperty( "file.resource.loader.cache", "true" ); props.setProperty( "file.resource.loader.modificationCheckInterval", "3600" ); Velocity.init (props); |
相关推荐
java新手必读java学习的捷径,java新手必读java学习的捷径
JAVA 2 捷径教程 第一章 代码 本人亲自录入
JAVA学习之路:不走弯路,就是捷径(一)
Java学习之路:不走弯路_就是捷径
2022年Java学习的捷径Java教程.docx
JAVA 2 捷径教程(代码1) 第一章 亲自录入
Java该如何学习?可以去参考《Java学习之路》、《Java夜未眠》、《Java学习之道》。话说回来,软件开发之路是充满荆棘与挑战之路,也是... Java学习也是如此,没有捷径可走。佛经说的不无道理,"不走弯路,就是捷径"。
JAVA 2 捷径教程 第三章 代码4 本人亲自录入
JAVA 2 捷径教程 第二章 代码2 本人亲自录入 方便大家学习
、jre是java运行时环境(jdk1.3版本以后都包含jre)不用单独下载 3、设置环境变量 安装了jdk以后,要配置环境变量 我的电脑->属性->高级->环境变量 添加以下环境变量(假定你的java安装在c:\jdk1.3) java_home=c:\...
JAVA 2 捷径教程 第三章 代码3 本人亲自录入 方便大家学习
Java学习不走弯路就是捷径.rtf 这是一篇文章,详细讲述了Java学习中遇到的困惑,指出了Java学习的详细路径,学习步骤,学习方法。非常值得一读。希望你对遇到的人有帮助!
第8版针对Java SE 6平台进行了全面更新,囊括了Java平, 台标准版(Java SE/J2SE)的全部基础知识,提供了大量完整且具有实际意, 义的应用实例,详细介绍了Java语言基础知识、面向对象程序设计、接口, 与内部类、事件...
走WORD字处理的捷径
Java学习之路:不走弯路,就是捷径!!
android 超捷径 源码android 超捷径 源码
ava编写的蜘蛛纸牌 其中包含源代码和可执行程序 是学习java的捷径
总结,是作者在深入分析自己和众多学生学习现状之后探索出的学习Java 的一条捷径。 全书共分11 章。第1 章详细地讲解了Java 开发环境的搭建、反编译工具的使用、JDK 文档资料的查阅以及Java 程序的编译和运行过程。...
JAVA学习之路:不走弯路,就是捷径。从零开始学JAVA