Velocity是apache组织下的一个基于java的模板引擎(template engine),而这种Apache velocity模板引擎的简单使用可以更好的将样式设计和java开发分离开来。
举个简单例子,在给一些客户发送邮件时,邮件正文往往带有一些较规范的表格或链接,而在发送邮件时,我们当然可以在java代码中写正文时加入html标签修饰达到如下目的:
但如果在业务上遇到更为复杂,项目较为庞大,这就要求项目组分工较为明确,而此时的邮件开发人员(java开发)对表单设计并不在行,换句话说java开发人员在开发邮件发送功能时即便花费较长时间用在利用html标签来修饰邮件正文内容,但其也很难达到专业的Web designers设计出来的水平。那么最能达到用户要求的方式是什么呢?是让每个人仅作自己最擅长的事情:java开发人员仅作邮件功能,web designer仅作邮件的类似web表单的正文。
上面所示的邮件中的表格(table)及其中的样式和连接()效果是web designer使用html实现的一个模板,而java开发人员则提供了相关表格(table)单元格填充所需要的内容,模板引擎利用模板语言将两者进行完美结合,最终形成一个美观邮件内容。Velocity则提供了这种方式的实现,如下图所示:
Velocity提供的这种方式的实现,其思想来源于MVC。Web designer设计好一个模板,里面使用html标签和模板语言(Velocity Template Language),而velocity模板引擎起到了控制作用,java开发人员只需要将相关数据作为一个map或其他变量等信息提供给这个模板,即可完成相关工作。代码示意如下所示:
模板:templateDemo.vm:
$map.get("applyFormId") | |||
templateDemo | |||
标题: | $map.get("Name") | 关键词 | $map.get("key") |