使用Java进行FreeMarker的web模板开发的基础教程

使用Java进行FreeMarker的web模板开发的基础教程

使用Java进行FreeMarker的web模板开发的基础教程

一、概述

FreeMarker是一款功能强大的模板引擎。在Java web开发中,FreeMarker用于将数据与模板相互结合生成静态页面或动态页面,是一种非常高效的开发方式。本文将详细介绍如何使用Java进行FreeMarker的web模板开发。

二、环境搭建

  1. 下载FreeMarker.jar包,并导入到项目中。

  2. 使用Maven管理项目,pom.xml文件中增加FreeMarker依赖:

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
</dependency>
  1. 在src/main/resources目录下添加freemarker.properties文件,这是FreeMarker的配置文件。可以在该文件中配置FreeMarker的默认路径、编码、缓存等参数。以下是一个示例:
template_update_delay=0
default_encoding=UTF-8
locale=zh_CN
number_format=0.##;-(0.##)

三、FreeMarker模板语法

  1. 变量

变量可以在模板中输出。在FreeMarker中,使用${}来表示变量。比如,

<!DOCTYPE html>
<html>
    <head>
        <title>${title}</title>
    </head>
    <body>
        Welcome ${name}!
    </body>
</html>

其中,${title}和${name}是变量,我们将在Controller中传递这些变量的值到模板中。

  1. 指令

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模板。

  1. 简单示例

创建一个简单的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!

  1. 复杂示例

创建一个包含列表的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模板开发的基础教程

基础教程推荐