Skip to content
oldratlee edited this page Mar 4, 2013 · 12 revisions

NanoTemplate是一个功能和实现都极度简单的模板实现。

为什么要有NanoTemplate

要写代码的时候常常会使用StringBuilderStringBuffer拼接文本的时候,有时拼接上七八个变量,更多的字符串常量,复杂的时候还会用if判断、for循环来拼接。
# 这样的需求即是 模板要解决的问题,应该使用模板技术来避免这样的代码。

这样的代码往往:

  • 琐碎不可读
  • 不方便修改维护
  • 容易有Bug
  • ……

通用的模板来解决这个问题显得过大了,只需要一个简单够用的实现。
# 如果是一个类来完成,是最好了。当然一个类的实现不见得就简单,代码简单可靠,所以nanotemplate也没有这么去做。

NanoTemplate就是为了解决这样的需求,这样也可以有针对性的特点:

  • 实现可以极度简单
  • 使用简单
    # API就三五个方法。
  • 零配置

功能

  1. 变更插入。
  2. if,条件输出
  3. for,遍历集合、Map、数组。

不打算支持的功能

是为了保证实现的极度简单。

  • 表达式运算。
  • 复杂的对象导航。

这些操作都可以渲染前做好。

相关产品

模板有很多,常见Java模板实现有:

  1. Velocity
  2. FreeMarker
  3. HTTL
  4. StringTemplate
  5. MiniTemplator
  6. Tea
Clone this wiki locally