ITKeyword,专注技术干货聚合推荐

注册 | 登录

Velocity 模板引擎在复杂邮件业务中的简单举例

dongzi87 分享于 2012-09-29

推荐:一种基于java语言的模板引擎velocity的使用

1.开始入门  Velocity是一基于java语言的模板引擎,使用这个简单、功能强大的开发工具,可以很容易的将数据对象灵活的与格式化文档组装到一起;希望本文能指引使

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

Velocity是apache组织下的一个基于java的模板引擎(template engine),而这种Apache velocity 模板引擎的简单使用可以更好的将样式设计和java开发分离开来。

举个简单例子,在给一些客户发送邮件时,邮件正文往往带有一些较规范的表格或链接,而在发送邮件时,我们当然可以在java代码中写正文时加入html标签修饰达到如下目的:

但如果在业务上遇到更为复杂,项目较为庞大,这就要求项目组分工较为明确,而此时的邮件开发人员(java开发)对表单设计并不在行,换句话说java开发人员在开发邮件发送功能时即便花费较长时间用在利用html标签来修饰邮件正文内容,但其也很难达到专业的Web designers设计出来的水平。那么最能达到用户要求的方式是什么呢?是让每个人仅作自己最擅长的事情:java开发人员仅作邮件功能,web designer仅作邮件的类似web表单的正文。

上面所示的邮件中的表格(table)及其中的样式和连接(<a></a>)效果是web designer使用html实现的一个模板,而java开发人员则提供了相关表格(table)单元格填充所需要的内容,模板引擎利用模板语言将两者进行完美结合,最终形成一个美观邮件内容。Velocity则提供了这种方式的实现,如下图所示:

Velocity提供的这种方式的实现,其思想来源于MVC。Web designer设计好一个模板,里面使用html标签和模板语言(Velocity Template Language),而velocity模板引擎起到了控制作用,java开发人员只需要将相关数据作为一个map或其他变量等信息提供给这个模板,即可完成相关工作。代码示意如下所示: 模板:templateDemo.vm: </head><center><TABLE width=850 border=1 bordercolor="#000000" id="tabID">

<TBODY align="left">

<TR rowspan="2">

<TD colSpan=4><B><FONT color=blue>$map.get("applyFormId")</FONT></B></TD>

</TR>

<TR>

<TD align=middle colSpan=4><FONT size=5><B>templateDemo</B></FONT></TD>

</TR>

<TR>

推荐:java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板

本文主要介绍利用JavaMailSenderImpl发送邮件。首先介绍了发送一般邮件,然后介绍了发送富文本(html)邮件及以velocity为模板发送邮件。

邮件发送分为为三步

<TD nowrap width="140"><B>标题:</B></TD>

<TD> $map.get("Name")</TD>

<TD nowrap><B>关键词</B></TD>

<TD> $map.get("key")</TD>

</TR>

</TBODY></TABLE></center></html>

VelocityEngine的使用 VelocityEngine ve = new VelocityEngine();ve.setProperty(Velocity.RESOURCE_LOADER, "class");ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 设置类路径加载模板ve.setProperty(Velocity.INPUT_ENCODING, "utf-8");// 设置输入字符集ve.setProperty(Velocity.OUTPUT_ENCODING, "utf-8");// 设置输出字符集ve.init();// 初始化模板引擎Template t = ve.getTemplate("/templateDemo.vm");// 加载模板,相对于classpath路径VelocityContext context = new VelocityContext();HashMap<String, Object> result = new HashMap<String, Object>();result.put("Name", "模板");result.put("Key", "语言");context.put("map", result);StringWriter writer = new StringWriter();t.merge(context, writer); // 转换writer.toString();

//形成最终结果

虽然模板引擎不仅仅使用在复杂的邮件内容的业务上,但这个简单例子让我们体会到了界面和业务数据分离的实现方式,这也是模板引擎的主要作用,即它可以让界面与数据分离,从而大大提高开发效率,也使得项目更加容易重用优良的界面设计。

推荐:Java语言介绍(04)开源项目(04)模板引擎(01)Velocity

streetvoice.com/phvnxnrj915/songs/album/93412284/ streetvoice.com/jrzlhfpb179/songs/album/93412272/ streetvoice.com/hbzzlbhx357/songs/album/93412297/

        Velocity是apache组织下的一个基于java的模板引擎(template engine),而这种Apache velocity 模板引擎的简单使用可以更好的将样式设计和java开发分离开来。        举个简单例子,在

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。