项目中需要扒一段hbase webUI页面的内容,hbase webUI页面访问地址10.x.x.x:60010/master-status,跟踪代码后发现,此web页面使用了一个jamon的模板语言,这个做个简单介绍。


既然是模块语言,都不会太复杂,要不然谁用j_0028.gif,切入正题


一、Jamon简介

    Jamon是一个Java文本模板引擎,用于生成动态HTML, XML,或任何基于文本的内容。它有一个丰富的功能集,支持封装,参数化,功能分解,表达逻辑重用。模板声明它们要求生成的参数,包括动态模板内容("fragments"),并被翻译成带有公有方法的Java类,它的符号反映了在模板中声明的参数。

二、简单使用

    1、创建Jamon模板文件(QsTemp.jamon)

<%args>
  java.util.Date date;
  String [] s;
</%args>
Hello, world on <% date %>.
The arguments are:
<%java int l = s.length; %>
<%for int i = 0; i < l; ++i %>
<% s[i] %>
</%for>

    2、创建java文件(JamonQs.java)

import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.Date;

public class JamonQs {
  public static void main(String[] argv) throws IOException {
    QsTemp template = new QsTemp();
    template.render(new OutputStreamWriter(System.out), new Date(0),argv);
  }
}

    3、将jar包加入到classpath目录下

export CLASSPATH=.:/path/to/jamon-runtime.jar:/path/to/jamon-api.jar:/path/to/jamon-processor.jar

    4、处理模板文件

java org.jamon.compiler.TemplateProcessor --destDir=. QsTemp

    5、编译

javac JamonQs.java QsTemp*.java

    6、执行

java JamonQs one two three

    7、执行结果

Hello, world on Wed Dec 31 17:00:00 MST 1969.
The arguments are:

one

two

three


jamon官方地址  http://www.jamon.org/