freemarker,呵呵,一直感觉很神秘的,今天看了下,里面东西挺多的,刚入门,继续努力。刚看了下人家自带的例子,拿出来晒晒。
第一种,最原始的吧(个人认为)。servelet的,
HellowServlet.java
public class HelloServlet extends HttpServlet {
private Configuration cfg;
public void init() {
// 加载模板路径
cfg = Configuration.getDefaultConfiguration();
cfg.setServletContextForTemplateLoading(
getServletContext(), "WEB-INF/templates");
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//收集数据
Map root = new HashMap();
root.put("message", "Hello World!");
//得到模板
Template t = cfg.getTemplate("test.ftl");
//得到类型,和编码格式
Writer out = new BufferedWriter(
new OutputStreamWriter(resp.getOutputStream(), t.getEncoding()));
resp.setContentType("text/html; charset=" + t.getEncoding());
// 呵呵,这才是最关键的,模板+数据模型=输出
try {
t.process(root, out);
out.flush();
} catch (TemplateException e) {
throw new ServletException(
"Error while processing FreeMarker template", e);
}
}
}
那个模板test.ftl的内容
<html>
<head>
<title>FreeMarker Example Web Application 1</title>
</head>
<body>
${message}
</body>
</html>