java 使用 Freemarker 写一个小网页
时间: 2024-06-10 08:09:44 浏览: 170
作为 AI,我无法进行图形界面操作,但是我可以提供一段 Java 代码示例,演示如何使用 Freemarker 模板引擎生成 HTML 页面。
首先,需要在项目中引入 Freemarker 的依赖,例如使用 Maven:
```xml
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.29</version>
</dependency>
```
然后,创建一个 Freemarker 的配置对象:
```java
Configuration cfg = new Configuration(Configuration.VERSION_2_3_29);
cfg.setClassLoaderForTemplateLoading(getClass().getClassLoader(), "templates");
```
这里使用了一个默认的配置,模板文件默认存放在 `templates` 目录下。
接下来,编写一个简单的模板文件,例如 `index.ftl`:
```html
<!DOCTYPE html>
<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
```
这个模板文件定义了一个 HTML 页面,使用 `${}` 语法插入变量。
最后,编写 Java 代码,将模板文件与变量进行渲染:
```java
Map<String, Object> data = new HashMap<>();
data.put("title", "Hello, World!");
data.put("message", "Welcome to my website.");
Template template = cfg.getTemplate("index.ftl");
try (Writer out = new OutputStreamWriter(System.out)) {
template.process(data, out);
}
```
这个代码片段将 `index.ftl` 模板文件与 `title` 和 `message` 两个变量进行渲染,并将结果输出到控制台。
完整的示例代码如下:
```java
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration(Configuration.VERSION_2_3_29);
cfg.setClassLoaderForTemplateLoading(Main.class.getClassLoader(), "templates");
Map<String, Object> data = new HashMap<>();
data.put("title", "Hello, World!");
data.put("message", "Welcome to my website.");
Template template = cfg.getTemplate("index.ftl");
try (Writer out = new OutputStreamWriter(System.out)) {
template.process(data, out);
}
}
}
```
阅读全文