在 Freemarker 模板中调用 Java 类的方法

Freemarker 是一个非常强大的 Java 模板引擎,常用于生成 HTML 页面。对于开发人员来说,了解如何在 Freemarker 模板中调用 Java 类的方法是非常重要的。这篇文章将指导你完成这一流程。

流程概览

在开始之前,让我们先了解一下整个过程的步骤。下面是一个简单流程表:

步骤 描述
1 创建 Java 类
2 在 Spring 配置 Freemarker
3 创建 Freemarker 模板
4 在模板中调用 Java 方法
5 渲染模板并显示结果

步骤 1: 创建 Java 类

首先,我们需要一个 Java 类来提供方法。假设我们需要一个简单的类 Calculator,它可以执行加法。

public class Calculator {
    // 加法方法
    public int add(int a, int b) {
        return a + b;
    }
}

代码解释

  • public class Calculator:定义一个公共类 Calculator
  • public int add(int a, int b):这是一个公共方法,接受两个整数参数 ab,返回它们的和。

步骤 2: 在 Spring 中配置 Freemarker

接下来,我们需要在 Spring 配置 Freemarker。通常在 applicationContext.xml 中进行配置。

<bean id="freemarkerConfig" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
    <property name="templateLoaderPath" value="/WEB-INF/templates/" />
</bean>

<bean id="freemarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="suffix" value=".ftl" />
</bean>

代码解释

  • templateLoaderPath:指定模板文件的路径。
  • FreeMarkerViewResolver:用来解析 Freemarker 视图。

步骤 3: 创建 Freemarker 模板

下一步,我们需要创建一个 Freemarker 模板文件。假设我们将其命名为 calculator.ftl

<#-- calculator.ftl 示例 -->
<!DOCTYPE html>
<html>
<head>
    <title>Calculator</title>
</head>
<body>
    Result: ${result}
</body>
</html>

代码解释

  • ${result}:表示将通过 Java 计算得出来的结果。

步骤 4: 在模板中调用 Java 方法

现在我们需要在控制器中调用 Java 类的方法,并将结果传递给模板。以下是一个示例控制器:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CalculatorController {

    private Calculator calculator = new Calculator(); // 创建 Calculator 对象

    // 处理 "/calculate" 请求
    @RequestMapping("/calculate")
    public String calculate(Model model) {
        int a = 5; // 第一个加数
        int b = 10; // 第二个加数
        int result = calculator.add(a, b); // 调用 Calculator 的 add 方法
        
        model.addAttribute("result", result); // 将结果添加到模型中
        return "calculator"; // 返回模板名称
    }
}

代码解释

  • CalculatorController:控制器类,使用 Spring 注解 @Controller
  • calculate 方法:处理输入,并将计算结果放到模型中。

步骤 5: 渲染模板并显示结果

最后,我们可以启动 Spring Boot 应用,并访问 http://localhost:8080/calculate。你应该能看到一个显示结果的页面。

关系图

为了更好地理解上述步骤的关系,下面是一个简化的 ER 图表示不同部分之间的关系:

erDiagram
    Calculator ||--o{ CalculatorController : invokes
    CalculatorController ||--|{ Freemarker : uses
    Freemarker ||--o{ User : renders

结尾

以上就是在 Freemarker 模板中调用 Java 类的方法的完整流程。从创建 Java 类,配置 Spring,编写模板,到控制器处理请求并渲染结果。这个过程虽然看起来可能有些复杂,但随着对这些技术的熟悉,你将在开发中游刃有余。希望你能掌握这些知识,并在今后的项目中得心应手!如果有任何疑问,请随时交流。