zoukankan      html  css  js  c++  java
  • Freemarker 入门

     

    新建maven项目,引入依赖

    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.23</version>
    </dependency>

    在resources下新建模板hello.ftl

    内容如下

    <#list userList as value>
      my name ${value}
    </#list>

    从模板读取数据,渲染到另外一个文件中

    Configuration configuration = new Configuration(Configuration.getVersion());
          Writer out = null;
          try {
              File srcFile = new File(TEMPLATE_PATH);
              System.out.println(srcFile.getAbsolutePath());
              System.out.println(TEMPLATE_PATH);
              // step2 获取模版路径
              configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));
              // step3 创建数据模型
              Map<String, Object> dataMap = new HashMap<String, Object>();
              ArrayList userList = new ArrayList();
              userList.add("lgm");
              userList.add("wsf");
              userList.add("wsl");
              userList.add("zmy");
              userList.add("lsq");
              dataMap.put("userList", userList);
              // step4 加载模版文件
              Template template = configuration.getTemplate("hello.ftl");
              // step5 生成数据
              File docFile = new File(TEMPLATE_PATH + "\" + "hello.txt");
              out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
              // step6 输出文件
              template.process(dataMap, out);
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              try {
                  if (null != out) {
                      out.flush();
                  }
              } catch (Exception e2) {
                  e2.printStackTrace();
              }
          }

     

    替换后的结果

        my name lgm
      my name wsf
      my name wsl
      my name zmy
      my name lsq

    从字符串中读取模板

    StringTemplateLoader loader = new StringTemplateLoader();
    configuration.setTemplateLoader(loader);
    loader.putTemplate("tpm", "<#list userList as value> " +
    "   my name ${value} " +
    "</#list>");
    // step3 创建数据模型
    Map<String, Object> dataMap = new HashMap<String, Object>();
    ArrayList userList = new ArrayList();
    userList.add("lgm");
    userList.add("wsf");
    userList.add("wsl");
    userList.add("zmy");
    userList.add("lsq");
    dataMap.put("userList", userList);
    // step4 加载模版文件
    Template template = configuration.getTemplate("tpm");
    out = new StringWriter();
    // step6 输出文件
    template.process(dataMap, out);
    System.out.println(out.getBuffer().toString());

    替换后结果跟之前一样

    my name lgm
    my name wsf
    my name wsl
    my name zmy
    my name lsq

     

  • 相关阅读:
    小程序接入第三方ui库(组件库)
    vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版
    Java 开发环境配置
    那么多 Java 版本,如何选择合适的版本
    你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
    JavaScript HTML DOM EventListener addEventListener() 方法
    Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
    使用 Fetch
    CSS3中steps()动画的详解
    MYSQL常用命令
  • 原文地址:https://www.cnblogs.com/liguangming/p/13161197.html
Copyright © 2011-2022 走看看