源文件
package nc.jonathan.velocity;
import java.io.StringWriter;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
/**
*<p> 第二個velocity學習類 </p>
*
*<p> 採用默認初始化設置,解析默認位置模版, 輸出到字符串</p>
*
* Create on 2006-4-3 10:49:41
*
* @author Jonathan Q. Bo
* @version 1.0 valocity study
*/
public class SecondExample {
public static void main(String[] args){
try {
/* 初始化運行時引擎, 默認初始化 */
Velocity.init();
/* 建立context, 並放入數據*/
VelocityContext context = new VelocityContext();
context.put("project","jonathan's velocity");
context.put("name","first example");
/* 解析後數據的輸出目標,java.io.Writer的子類 */
StringWriter w = new StringWriter();
/* 進行解析 */
//Velocity.mergeTemplate("secondtemplate.vm",context,w);
Velocity.mergeTemplate("secondtemplate.vm","gb2312",context,w);
System.out.println(w);
} catch (ResourceNotFoundException e1) {
System.out.println("## 源文件不存在!");
e1.printStackTrace();
} catch (ParseErrorException e2) {
System.out.println("## 解析文件錯誤!");
e2.printStackTrace();
} catch (MethodInvocationException e3) {
System.out.println("## 方法調用異常!");
e3.printStackTrace();
} catch (Exception e4){
System.out.println("## 其他錯誤!");
e4.printStackTrace();
}
}
}
模板文件
We are using template.vm to generate $project $name
輸出結果
We are using template.vm to generate jonathan's velocity first example