Java freemarker <#global/>使用案例
时间: 2024-11-30 11:17:10 浏览: 19
在 Java 中,FreeMarker 模板引擎允许在模板文件中定义全局变量,便于在整个模板中复用。`<#global/>` 是 FreeMarker 的标签,用来声明全局变量。下面是一个简单的使用案例:
首先,创建一个 Java 类,这个类将作为数据源提供给 FreeMarker 模板:
```java
public class GlobalVariables {
private String appName;
private int version;
// 构造函数、getter 和 setter 省略...
}
```
然后,在 FreeMarker 模板文件(比如 `template.ftl`)中,定义全局变量:
```ftl
<#global appName application.name>
<#global version application.version>
<p>Welcome to ${appName}, version ${version}!</p>
```
在这里,`application.name` 和 `application.version` 是从 Java 类传递过来的属性。当你实际渲染模板时,需要注入这些变量:
```java
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreemarkerTemplateService {
private Configuration config;
public FreemarkerTemplateService(Configuration config) {
this.config = config;
}
public String renderTemplate(GlobalVariables variables) throws Exception {
Template template = config.getTemplate("template.ftl");
Map<String, Object> model = new HashMap<>();
model.put("application", variables);
return template.process(model);
}
}
```
在上述 `renderTemplate` 方法中,我们将 `GlobalVariables` 对象封装到模板模型(model)中,FreeMarker 就能在模板中访问这些全局变量了。
阅读全文