数据+模板 = 文本
常用的模板技术:(1)freemarker 默认后缀 .ftl; (2)velocity 默认后缀 .vm
模板技术的作用
(1)动态页面静态化(网站)
(2)代码生成器
(3)邮件或者短信等的模板
2.velocity(1)引入velocity jar包
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.6</version>
</dependency>
(2)准备模板 - hello.vm
## 我是一个没有感情的注释
${username},你好啊!!!
##对象数据获取
##$!:有数据就显示,没有数据就不显示(其它的没有数据会直接显示)
${employee.username} ====== ${employee.age}
$employee.username ====== $employee.age
$!employee.username ====== $!employee.age
##设置变量
#set($person = "接客")
$person
## 集合
#set($names=["汤母", "吉瑞", "肉丝"])
<p>$names.get(1)</p>
<ul>
#foreach($l in $names)
<li>$l</li>
#end
</ul>
(3) velocity的Java代码
//测试默认就是项目根目录
//数据 + 模板 = 输入文本
@Test
public void testHelloFile()throws Exception{
//创建一个Velocity引擎
VelocityEngine ve = new VelocityEngine();
//获到到相应的模板
Template template = ve.getTemplate("template/hello.vm","UTF-8");
//创建模板上下文(装数据的东西)
VelocityContext velocityContext = new VelocityContext();
velocityContext.put("username","二狗");
//准备对象,放到上下文中
Employee employee = new Employee();
employee.setUsername("三狗");
// employee.setAge(45);
velocityContext.put("employee",employee);
//准备输出的位置
FileWriter fileWriter = new FileWriter("template/hello.html");
//数据 + 模板 = 输入文本
template.merge(velocityContext, fileWriter);
fileWriter.close();
}
二.代码生成器
1 EasyCodeEasyCode是基于IntelliJ IDEA开发的代码生成插件,支持
自定义任意模板(Java,html,js,xml)
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity(domain)、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
官方文档 : https://gitee.com/makejava/EasyCode/wikis/pages?sort_id=725069&doc_id=166248
2 EasyCode 插件安装![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yYwIDZkhTNzM2YxADOwQTOhFjYjhzMlVjY5ImZ2UTY38CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
(2)
模板代码的位置:(3)
生成时的路径位置:文件最终创关键的路劲为 Path+Package拼接起来