freemarker tpl模板
时间: 2023-09-13 07:06:32 浏览: 119
在Freemarker中,模板文件的扩展名通常为`.ftl`,而不是`.tpl`。你可以创建一个以`.ftl`为扩展名的文件,并使用Freemarker的模板语法编写动态内容。
以下是一个简单的FreeMarker模板示例:
```freemarker
<html>
<head>
<title>Welcome to FreeMarker!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Here are your orders:</p>
<ul>
<#list orders as order>
<li>${order}</li>
</#list>
</ul>
</body>
</html>
```
在上面的模板中,`${user}`和`${order}`是Freemarker的变量插值语法,它们会被实际的值替换。`<#list>`语句用于遍历`orders`列表并生成相应的HTML代码。
你可以将上述模板保存在一个以`.ftl`为扩展名的文件中,例如`welcome.ftl`。
在使用Freemarker时,你需要创建一个`Configuration`对象,并将其配置为加载模板文件的位置。然后,使用`Template`对象加载模板,并将数据模型传递给它。最后,使用`Template.process()`方法将数据模型与模板合并,生成最终的输出。
以下是一个简单的Java示例:
```java
Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);
cfg.setClassForTemplateLoading(this.getClass(), "/templates");
Template template = cfg.getTemplate("welcome.ftl");
Map<String, Object> data = new HashMap<>();
data.put("user", "John");
data.put("orders", Arrays.asList("Order 1", "Order 2", "Order 3"));
Writer out = new StringWriter();
template.process(data, out);
String output = out.toString();
```
在上面的示例中,我们将模板文件放在`/templates`目录下,并使用`cfg.setClassForTemplateLoading()`方法设置模板加载的位置。然后,我们创建一个包含用户和订单数据的`Map`对象,并将其传递给`template.process()`方法。最后,我们将生成的输出保存在一个字符串中。
希望这个示例能帮助你理解Freemarker模板的基本用法。请记住,Freemarker有更多的语法和功能,你可以参考官方文档以了解更多信息。
阅读全文