第一步  创建一个User.java文件 来两个变量

public class User {
      private String userName;
 
      private
String userPassword;

//。。。这里省略set()  get()方法一定要加上;

}

第二步  创建一个user.ftl文件 模板 先放在web目录下吧

<!DOCTYPE>
 
       <html>  
        <head>  
       <meta http-equiv=Content-Type content="text/html; charset=utf-8">  
       <title>user.ftl</title>  
        </head>  
       <body>  
         ${user.userName}  
         ${user.userPassword}  
       </body>  
     </html>

第三步
 创建一个FreemarkerUtil.java 工具类

//templatePath模板文件存放路径  
        //templateName 模板文件名称  
        //fileName 生成的文件名称 
        //templateEncoding 文本HTML的编码方式

//Map<?, ?> root 储存的数据
       public class FreeMarkerUtil {
       public static void analysisTemplate(String templatePath,String        
                        templateName,String fileName,String templateEncoding,                                         Map<?,?> root) {
       try {
      // 创建Configuration对象
      Configuration config=new Configuration();
      // 指定模板路径
      File file=new File(templatePath);
     //设置要解析的模板所在的目录,并加载模板文件
     config.setDirectoryForTemplateLoading(file);
     //设置包装器,并将对象包装为数据模型 
     config.setObjectWrapper(new DefaultObjectWrapper());
    //获取模板,并设置编码方式,编码必须要与页面中的编码格式一致 
   Template template =                                                   
             config.getTemplate(templateName,templateEncoding);
    // 合并数据模型与模板
    FileOutputStream fos = new FileOutputStream(fileName);  
    //输出到页面
    Writer out = new OutputStreamWriter(fos,templateEncoding);  
       template.process(root, out);
         out.flush();
         out.close();
     } catch (IOException e) {
           e.printStackTrace();
       } catch (TemplateException e) {
    e.printStackTrace();
     }
   }
}

第四步  创建一个Test.java 测试类

public class Test {
     public static void main(String[] args) {
     User user =new User();
     user.setUserName("测12312");
     user.setUserPassword("123");
     Map<String,Object> root=new HashMap<String,Object>();
    root.put("user", user);

String fileName="user.ftl"; 
    String templatesPath="web";  
    String htmlFile=templatesPath+"/user.html";

String templateEncoding="UTF-8";

//这里的编码方式是为了以后可能还要输入韩文或者日文等信息为了灵活//也可以在工具类中写死一种
    FreeMarkerUtil.analysisTemplate(templatesPath, fileName,                    
htmlFile,templateEncoding, root);
}
}

freemaker示例的更多相关文章

  1. Spring4 SpringMVC Hibernate4 Freemaker 集成示例

    变更更正(2014-05-30 13:47:22):一些IDE在web.xml我们会报告这个错误: cvc-complex-type.2.4.a: Invalid content was found ...

  2. Spring MVC 学习总结(四)——视图与综合示例

    一.表单标签库 1.1.简介 从Spring2.0起就提供了一组全面的自动数据绑定标签来处理表单元素.生成的标签兼容HTML 4.01与XHTML 1.0.表单标签库中包含了可以用在JSP页面中渲染H ...

  3. 【FreeMaker】FreeMaker学习-基础

    转载请标明出处:http://www.cnblogs.com/ssslinppp 阅读目录 -04-08 08:08:08 Pacific Daylight Time Tue, Apr 8, '03 ...

  4. freemaker分页备忘

    思路:定义一个freemaker宏,接收参数.然后在freemaker页面上import这个文件,把参数传进来在server端渲染. 分页标签:pager.ftl <#-- 自定义的分页指令. ...

  5. 表现层技术以及Freemaker使用教程

    表现出计数以及Freemaker详解 在java领域,表现层技术主要有三种:jsp.freemarker.velocity.jsp是大家最熟悉的技术优点: 1.功能强大,可以写java代码 2.支持j ...

  6. FreeMaker入门介绍

    一.FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT.电子邮件.配置文件.源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组 ...

  7. SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf 4节课

    1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...

  8. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  9. .NET跨平台之旅:将示例站点升级至 ASP.NET Core 1.1

    微软今天在 Connect(); // 2016 上发布了 .NET Core 1.1 ,ASP.NET Core 1.1 以及 Entity Framework Core 1.1.紧跟这次发布,我们 ...

随机推荐

  1. Uva 10820 交表

    题目链接:https://uva.onlinejudge.org/external/108/10820.pdf 题意: 对于两个整数 x,y,输出一个函数f(x,y),有个选手想交表,但是,表太大,需 ...

  2. 字符串反转,栈模拟(ZOJ1151)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 这里可以用栈模拟,也可以用STL,reverse();函数. 但 ...

  3. 问题 B: 投简历

    题目描述 小华历经12寒窗苦读,又经历4年大学磨砺,终于毕业了,随着毕业季的到来,找工作也日益紧张起来.由于要面试不同的公司,因此小华需要准备不同的简历.当然最基本的信息是必不可少的,基本信息:姓名. ...

  4. Python2.x 和 3.x 的区别

    Python有两个版本,2.x 和 3.x ,两个版本不兼容,3.x 不不考虑对2.x代码的向后兼容. 在3.x中,一些语法,内建函数和对象的行为都有所调整. 大部分的python库都支持 pytho ...

  5. 在c#中using和new这两个关键字有什么意义?

    在c#中using和new这两个关键字有什么意义?答:using 引入名称空间或者使用非托管资源, new 新建实例或者隐藏基类方法

  6. nginx 报错: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)

    执行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf https://www.cnblogs.com/codingcl ...

  7. CodeMirror的使用方法

    最近项目中用到了CodeMirror这个代码编辑器,感觉非常好用,可以设置很多种代码格式.默认前提是你已经正确引入了所有的js文件和css文件. 下面是我在项目中用到过和在网上搜集整理的使用方法: 1 ...

  8. mongdb安装配置

    一.先登录Mongodb官网https://www.mongodb.com/download-center#community 下载   安装包.32.64位的都行. 或者查看我的百度云(使用win7 ...

  9. redis源代码结构解析

    看了黄建宏老师的<Redis设计与实现>,对redis的部分实现有了一个简明的认识: 之前面试的时候被问到了这部分的内容,没有关注,好在还有时间,就把Redis的源码看了一遍. Redis ...

  10. 详解 JavaScript 中 splice() 方法

    splice() 方法是一个比较少用的方法,但是功能确实很好,并且在我们 coding 的时候,经常有需要 splice() 方法,先介绍一下该方法. 在 JavaScript 中 splice() ...