使用Java进行FreeMarker的web模板开发的基础教程
一、概述
FreeMarker是一款功能强大的模板引擎。在Java web开发中,FreeMarker用于将数据与模板相互结合生成静态页面或动态页面,是一种非常高效的开发方式。本文将详细介绍如何使用Java进行FreeMarker的web模板开发。
二、环境搭建
-
下载FreeMarker.jar包,并导入到项目中。
-
使用Maven管理项目,pom.xml文件中增加FreeMarker依赖:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
- 在src/main/resources目录下添加freemarker.properties文件,这是FreeMarker的配置文件。可以在该文件中配置FreeMarker的默认路径、编码、缓存等参数。以下是一个示例:
template_update_delay=0
default_encoding=UTF-8
locale=zh_CN
number_format=0.##;-(0.##)
三、FreeMarker模板语法
- 变量
变量可以在模板中输出。在FreeMarker中,使用${}来表示变量。比如,
<!DOCTYPE html>
<html>
<head>
<title>${title}</title>
</head>
<body>
Welcome ${name}!
</body>
</html>
其中,${title}和${name}是变量,我们将在Controller中传递这些变量的值到模板中。
- 指令
FreeMarker中的指令可以控制模板的流程和结构。
例如:
if指令,根据条件判断是否输出某段内容:
<#if score gt 60>
<p>您已经成功通过考试!</p>
<#else>
<p>很抱歉,您没有通过考试。</p>
</#if>
list指令,循环输出一段内容:
<#list users as user>
<li>${user.name}</li>
</#list>
其中,users是一个List对象,我们将在Controller中传递users到模板中。
还有很多其他指令如<#include>、<#macro>等,这里不再一一列举。
四、实战演练
下面将通过两个示例,演示如何使用FreeMarker开发web模板。
- 简单示例
创建一个简单的Controller:
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "Alice");
model.addAttribute("title", "Hello FreeMarker");
return "hello";
}
在resources/templates目录下,创建hello.ftl文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>${title}</title>
</head>
<body>
Welcome ${name}!
</body>
</html>
当访问/hello路径时,会返回渲染后的hello页面。页面内容为:Welcome Alice!
- 复杂示例
创建一个包含列表的Controller:
@RequestMapping("/list")
public String list(Model model) {
List<User> users = new ArrayList<>();
users.add(new User("Alice", 20));
users.add(new User("Bob", 25));
users.add(new User("Charlie", 30));
model.addAttribute("users", users);
model.addAttribute("title", "User List");
return "list";
}
这里的User类定义如下:
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在resources/templates目录下,创建list.ftl文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>User List</h1>
<ul>
<#list users as user>
<li>${user.name}, ${user.age} years old</li>
</#list>
</ul>
</body>
</html>
当访问/list路径时,会返回渲染后的list页面。页面内容为:
User List
- Alice, 20 years old
- Bob, 25 years old
- Charlie, 30 years old
至此,FreeMarker的web模板开发入门就完成了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Java进行FreeMarker的web模板开发的基础教程 - Python技术站