第一步  创建一个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);
}
}

//运行完测试类后打开那个被新建的user.html 数据已经在页面显示了

freemarker怎么把数据显示到页面中?的更多相关文章

  1. FreeMarker页面中获得contextPath

    要在ftl页面中使用contextPath,需要在viewResolver中做如下配置(红色部分): <bean id="viewResolver" class=" ...

  2. Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

    模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...

  3. freemarker 集成 sitemesh 装饰html页面 shiro 标签

      guest标签:验证当前用户是否为"访客",即未认证(包含未记住)的用户: shiro标签:<shiro:guest></shiro:guest>  : ...

  4. 在OAF页面中集成ECharts以及highcharts用于显示图表

    历史博文中有讲解在请求中输出基础图表的方式,见地址:EBS 请求输出Html报表集成Echarts 本文讲述在OAF中集成这两类图表. 集成的基本思路:在OAF页面中加入一个rawText组件,在ra ...

  5. 在同一页面中显示多个echart图表

    整理了一下大概有两种做法来实现在同一个页面中显示多个echart图表,废话不说直接上代码. 在同一个echart对象中绘制多个图表 <!DOCTYPE html> <html lan ...

  6. 页面中多个script块之间的关系

     一:函数声明与函数定义表达式在函数调用间的区别 <script type="text/javascript"> doA(); var doA = function(a ...

  7. 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体

    注:本文适用.net 2.0+的winform项目 目的: 点击页面中的target="_blank"链接时,弹出新窗体 页面中有window.close()操作时,关闭窗体 上述 ...

  8. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  9. WEB页面中常见的四种控件的必须的测试

    以下为常规的需求,除非需求有明确说明,如密码输入框中可以输入空格.   输入框 1. 为空,但页面中明确说明不能为空(带有星号或者只有这一个输入框),有以下两种情况: a. 不进行输入或者使其为空:焦 ...

随机推荐

  1. 处理javabean的JSP标签

    (1) 关于javabean要求: 1,具有无参的构造函数. 2,针对每一个成员变量,因改提供相应get/set. 3,implments Serializable(实现才能对象序列化). (2) 使 ...

  2. Orleans介绍

    一.介绍 Orleans是一个框架,提供了一个直接的方法来构建分布式高规模计算应用程序 默认可扩展 -> Orleans处理构建分布式系统的复杂性,使您的应用程序能够扩展到数百台服务器.低延迟 ...

  3. php版本CKEditor 4和CKFinder安装及配置

    下载并解压CKEditor 4和CKFinder CKEditor 4下载地址:https://ckeditor.com/cke4/builder,选择自定义的版本,记得加上中文语言包 CKFinde ...

  4. BZOJ.1085.[SCOI2005]骑士精神(迭代加深搜索)

    题目链接 最小步数这类,适合用迭代加深搜索. 用空格走代替骑士. 搜索时记录上一步防止来回走. 不需要每次判断是否都在位置,可以计算出不在对应位置的骑士有多少个.而且每次复原一个骑士至少需要一步. 空 ...

  5. hdu 1073 字符串处理

    题意:给一系列的输出和标准答案,比较二者是AC,PE或WA 字符串处理还是比较薄弱,目前没什么时间搞字符串专题,所以遇到一题就努力搞懂 #include<cstdio> #include& ...

  6. Android中使用隐藏API(大量图解)

    Android SDK的很多API是隐藏的,我无法直接使用.但是我们通过编译Android系统源码可以得到完整的API. 编译Android系统源码后可以在out\target\common\obj\ ...

  7. cefsharp wpf 中文输入问题解决方法

    摘要 最近在搞一个客户端的项目,考虑使用wpf,内嵌webView的方式,访问h5页面.所以使用了CefSharp组件,但发现一个问题,就是在输入中文的时候,无法输入. 解决办法 去官方github的 ...

  8. poj 2429 GCD &amp; LCM Inverse 【java】+【数学】

    GCD & LCM Inverse Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9928   Accepted:  ...

  9. Linux声卡驱动框图

    1.声卡驱动注册完成后的框图 2.open & hw_params 完.

  10. AutoMapper在MVC中的运用01-配置、使用、单元测试、举例

    MVC中,如果想在Domain Model和View Model之间建立映射,用AutoMapper是一个不错的选择.不仅如此,AutoMapper能在不同对象之间建立映射,比如string与int类 ...