freemarker

本文介绍Freemarker模板引擎的基础使用方法,包括数据读取、条件判断、方法调用等核心功能,并演示了如何定义及使用自定义指令来增强模板的表现力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

##优先级操作

 

## 自定义指令

 

  1. 在模板中定义指令
  2. 扩展freemarker.temlate.TemlateDirectiveModel类

例:  

 

指令调用

 

FTL 标记 <@greet paramName="参数"></@greet>

类似于java的方法调用 参数是必须传值的

 

 

指令可以设计的很复杂 可以包含其他的FTL 标记 和 插值

 

## 变量定义

 

 -- 简单变量

 

 <#assign x = 1>  变量X  = 1;

 

-- 局部变量

 

-- 循环变量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

### Freemarker模板引擎介绍 Freemarker 是一款用于生成文本输出(HTML网页、电子邮件、配置文件、源代码等)的模板引擎。其设计初衷是为了通过相同的机制来处理各种类型的文本生成需求,从而简化Web应用开发中的视图层实现[^1]。 #### 主要特点 - **强大的表达式语言** 支持丰富的数据操作功能,包括但不限于算术运算、字符串处理以及集合遍历等功能。 - **灵活的内容布局控制** 提供多种标签用于定义页面结构和样式,允许开发者轻松构建复杂多变的应用界面。 - **易于集成第三方库** 可方便地与其他Java框架协同工作,如Spring MVC, Struts2 等,在企业级项目中有广泛应用场景[^2]。 ### 使用方法概述 为了更好地理解如何使用Freemarker,下面将以创建名为`freemarker-demo` 的Maven工程为例说明具体步骤: #### 工程搭建 首先需要建立一个新的 Maven 项目,并在其 `pom.xml` 文件内加入如下依赖项以引入Freemarker库支持: ```xml <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency> ``` 接着可以在资源目录下新建一个 `.ftl` 后缀名的文件作为模板文件,例如 `hello.ftl`: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello Page</title> </head> <body> <h1>${message}</h1> <p>Welcome to the world of FreeMarker!</p> </body> </html> ``` 上述代码片段展示了最简单的 HTML 文档结构,并利用 `${}` 占位符预留了一个动态变量位置等待后续填充实际内容。 #### Java端调用逻辑编写 最后一步是在应用程序中加载并解析该模板文件。这里给出一段完整的示例程序展示整个过程: ```java import freemarker.template.Configuration; import freemarker.template.Template; import java.io.File; import java.io.FileWriter; 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_30); // 设置模板所在路径 String templatePath = "src/main/resources/templates"; File dir = new File(templatePath); cfg.setDirectoryForTemplateLoading(dir); Template temp = cfg.getTemplate("hello.ftl"); Map<String,Object> dataModel = new HashMap<>(); dataModel.put("message", "Hello World!"); try (Writer out = new FileWriter(new File("output.html"))) { temp.process(dataModel,out); } } } ``` 这段代码实现了从指定位置读取模板文件(`hello.ftl`),并通过传入的数据模型对象 (`dataModel`) 将其中占位符替换为真实值后输出至目标文件(`output.html`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值