加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

FreeMarker之根据模型生成HTML代码

发布时间:2020-12-15 07:12:50 所属栏目:Java 来源:网络整理
导读:FreeMarker之根据模型生成HTML代码与FreeMarker根据模型生成Java代码,本质上是一样的,关于生成Java代码可以参考我的这篇文章:FreeMarker之根据模板生成Java代码 一、导入依赖 project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.

FreeMarker之根据模型生成HTML代码与FreeMarker根据模型生成Java代码,本质上是一样的,关于生成Java代码可以参考我的这篇文章:FreeMarker之根据模板生成Java代码

一、导入依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  modelVersion>4.0.0</groupId>cn.test.freemarkerartifactId>testFreemarkerversion>0.0.1-SNAPSHOTpackaging>wardependencies>
    dependency>
      >junit>3.8.1scope>test>org.freemarker>freemarker>2.3.23buildfinalName>

project>

?

二、编写模板

在src/main/java下新建templates包,并在该包下新建user.ftl,内容如下所示:

<!DOCTYPE html>
htmlheadmeta charset="UTF-8"title>用户信息<!-- 新 Bootstrap 核心 CSS 文件 -->
link rel="stylesheet"
    href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" />
body style="font-family:'Courier New'"h3 class="text-center">这是用户${username}的信息页!h3div ="col-md-6 column">
        table ="table table-bordered">
            tr>
                th>用户名>密码>年龄>地址td>${username}>${password}>${age}>${address}tabledivbody>

?

三、编写Java代码

在src/main/java新增testFreeMarker包,并在该包下创建该两个Java文件

User.java

package testFreemarker;

public  User {

    private String username;

     String password;

     Integer age;

     String address;

    
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }

     User(String username,String password,Integer age,String address) {
        this.username = username;
        this.password = password;
        this.age = age;
        this.address = address;
    }

     String getUsername() {
        return username;
    }

    void setUsername(String username) {
         String getPassword() {
         password;
    }

     setPassword(String password) {
         Integer getAge() {
         age;
    }

     setAge(Integer age) {
         String getAddress() {
         setAddress(String address) {
         address;
    }

  
}

?

CreateHtmlByFreemarker.java

import java.io.BufferedWriter;
 java.io.File;
 java.io.FileOutputStream;
 java.io.FileWriter;
 java.io.IOException;
 java.io.OutputStreamWriter;
 java.io.Writer;
 java.util.HashMap;
 java.util.Map;

 freemarker.core.ParseException;
 freemarker.template.Configuration;
 freemarker.template.MalformedTemplateNameException;
 freemarker.template.Template;
 freemarker.template.TemplateException;
 freemarker.template.TemplateNotFoundException;

 CreateHtmlByFreemarker {
        private static final String TEMPLATE_PATH = "src/main/java/templates";
        final String CLASS_PATH = "src/main/webapp/product";
        
         main(String[] args) {
             step1 创建freeMarker配置实例
            Configuration configuration = new Configuration();
            Writer out = null;
            try {
                 step2 获取模版路径
                configuration.setDirectoryForTemplateLoading( File(TEMPLATE_PATH));
                 step3 创建数据模型
                Map<String,Object> dataMap = new HashMap<String,Object>();
                dataMap.put("username","zhangsan");
                dataMap.put("password","123456");
                dataMap.put("age","18");
                dataMap.put("address","test");
                 step4 加载模版文件
                Template template = configuration.getTemplate("user.ftl" step5 生成数据
                File docFile = new File(CLASS_PATH + "" + "user.html");
                out = new BufferedWriter(new OutputStreamWriter( FileOutputStream(docFile)));
                 step6 输出文件
                template.process(dataMap,out);
                System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^user.ftl 文件创建成功 !");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                    if (null != out) {
                        out.flush();
                    }
                }  (Exception e2) {
                    e2.printStackTrace();
                }
            }
        }

}

?

四、运行CreateHtmlByFreemarker.java

一般运行不报错并输出user.ftl创建成功的输出语句就表示成功,这时只需刷新下,就可以在对应的目录下看到通过模板生成的html文件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读