模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢的,当然很多应用服务器都提供预编译的功能,但是在开发的时候仍然给我们程序员带来了很多痛苦,每次修改都要多几秒钟,那在一天的开发中就有很多时间浪费在jsp的编译上了。用 webwork in action的作者的话来说:“每次修改之后重新运行都要等等几秒是令人失望的,而频繁地修改jsp更是会令你的失望情绪变本加厉“。我们把模板技术引入到view中去可以带来更好的开发效率,而且模板的速度要比jsp快(虽然编译过后的jsp在速度上已经满足我的需求了,呵呵)。当然模板技术可以用在很多领域,可不只在view那里。我们可以通过模板技术来生成xml,生成jsp,生成java文件等等,说到这里,大家通常会使用模板技术用在公司的框架里,这样就可以很快速的生成添删改查的代码,需要的只是模板,其他比如还有邮件模板等等。
以上是模板的作用,当然模板还有其他领域的应用,希望能和大家多讨论,提高我们的生产效率。下面先为大家介绍freemark开发简单hello实例
第一步:将需要的freemark.jar包导入lib目录
第二步:在根目录下新建一个templates目录,在里面建立一个hello.ftl文件,文件内容如下:
1. <html>
2. <head>
3. <title>freemark example</title>
4. </head>
5. <body>hello ${user}!</body>
6. </html>
第三步:在根目录下新建一个index.html文件,代码如下:
1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=utf8">
5. <title>Insert title here</title>
6. </head>
7. <body>
8. <hr>
9. <a href="test">调用hello模板</a>
10. </body>
11. </html>
第四步:新建立一个Hello类,代码如下:
1. package org.eagle;
2.
3. import java.io.*;
4. import java.util.*;
5.
6. import javax.servlet.ServletException;
7. import javax.servlet.http.*;
8.
9. import freemarker.template.Configuration;
10. import freemarker.template.Template;
11. import freemarker.template.TemplateException;
12.
13. public class Hello extends HttpServlet {
14. private Configuration cfg;
15.
16. public void init() {
17. // 初始化FreeMarker配置
18. // 创建一个Configuration实例
19. cfg = new Configuration();
20. // 设置FreeMarker的模版文件位置
21. cfg.setServletContextForTemplateLoading(getServletContext(),
22. "templates");
23. }
24.
25. public void doGet(HttpServletRequest request, HttpServletResponse response)
26. throws ServletException, IOException {
27. // 建立数据模型
28. Map root = new HashMap();
29. // 放入对应数据key value
30. root.put("user", "zdz");
31. // 取得模版文件
32. Template t = cfg.getTemplate("hello.ftl");
33. // 开始准备生成输出
34. // 使用模版文件的charset作为本页面的charset
35. // 使用text/html MIME-type
36. response.setContentType("text/html; charset=" + t.getEncoding());
37. PrintWriter out = response.getWriter();
38.
39. // 合并数据模型和模版,并将结果输出到out中
40. try {
41. t.process(root, out);// 用模板来开发servlet可以只在代码里面加入动态的数据
42. } catch (TemplateException e) {
43. throw new ServletException("处理Template模版中出现错误", e);
44. }
45. }
46. }
第五步:在web-xml里面配置一下该servlet
1. <servlet>
2. <servlet-name>Hello</servlet-name>
3. <servlet-class>org.eagle.Hello</servlet-class>
4. </servlet>
5. <servlet-mapping>
6. <servlet-name>Hello</servlet-name>
7. <url-pattern>/test</url-pattern>
8. </servlet-mapping>
第六步:启动服务器,打开index.html页面即可
分享到:
相关推荐
Java使用freemark生成word,http://blog.csdn.net/op635915376/article/details/51644527源码
freemark模板&模版技术&freemark模板&模版技术
一些很不错的freemark资料及eclipse的freemark插件
freemark比较实用的手册,中文版 适合快速学习
适用于初学者快速掌握Freemark的使用(内附代码)。
freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解
freemark标签使用的一些说明.希望对大家有点用。
主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用
使用freemark模板导出pdf
Freemark指南:全面介绍Freemark的使用方法,让你的页面已程序完美的结合!
freemark简单使用源码,简单介绍freemark的操作方法qqqqqqqqq
freemark中文资料 freemark教程 freemark基础和高级教程
freemark ,
FREEMARK资料,开发入门指南 是开发人员了解FREEMARK的一本入门资料
freemark生成静态页面,直接导入该项目 使用JDK1.6。直接运行代码中的CreateHtmlWebSite.java, 即可在webroot下面生成MyWebSite.html静态页面。
开发freemarker的一个简单的例子,直接运行成功,无需修改。
FreeMark jar包,中文官方文档。FreeMark jar包,中文官方文档。
freemark 2.3.19 中文教程
学习文档,主要介绍了freemark的基本运用,学习之后可以达到写出自己DEMO的效果