Freemarker入门使用

8 篇文章 0 订阅
3 篇文章 0 订阅

新建一个maven项目,将其命名为freemarker,pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>freemarker</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>freemarker</name>
    <description>Demo project for freemarker</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.8</version>
        </dependency>
    </dependencies>

</project>

新建一个包,名为entity,新建另一个包,名为utils,在utils下新建一个java类,命名为FreemarkerUtils.java,其内容如下:

package com.example.demo.utils;

import freemarker.template.Configuration;
import freemarker.template.Template;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FreemarkerUtils {
	public static void createEntity(String className,Map<String,Object> data)throws Exception{
		String ftlPath = "D:\\project\\freemarker\\src\\main\\resources\\ftl";
		Configuration conf = new Configuration();
		conf.setDirectoryForTemplateLoading(new File(ftlPath));
		Template template = conf.getTemplate("entity.ftl");
		BufferedWriter out = new BufferedWriter(new FileWriter("D:\\project\\freemarker\\src\\main\\java\\com\\example\\demo\\entity\\"+className+".java"));
		template.process(data, out);
		out.close();
	}

	public static void main(String[] args) throws Exception {
		Map<String,Object> data = new HashMap<String,Object>();
		List<String> cols = new ArrayList<String>();
		cols.add("name");
		cols.add("age");
		cols.add("email");
		data.put("className", "TestEntity");
		data.put("cols", cols);
		createEntity("TestEntity",data);
	}
}

在项目resources目录下新建一个ftl目录,作为freemarker的模板文件目录,在ftl下创建entity.ftl文件,其内容如下:

package com.example.demo.entity;

public class ${className}{
    <#list cols as col>
        <#if col=="age">
    private int ${col};
        <#else>
    private String  ${col};
        </#if>
    </#list>

    <#list cols as col>
    public void set${col?string?substring(0,1)?upper_case}${col?string?substring(1)}(<#if col=="age">int<#else>String</#if> ${col}){
        this.${col} = ${col};
    }
    public <#if col=="age">int<#else>String</#if> get${col?string?substring(0,1)?upper_case}${col?string?substring(1)}(){
        return ${col};
    }

    </#list>
}

至此,执行FreemarkerUtils.java中的main方法,即可在D:\project\freemarker\src\main\java\com\example\demo\entity目录下生产Entity.java文件,其内容如下:

package com.example.demo.entity;

public class TestEntity{
    private String  name;
    private int age;
    private String  email;

    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }

    public void setEmail(String email){
        this.email = email;
    }
    public String getEmail(){
        return email;
    }

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值