Spring MVC集成FreeMarker

以下是一个简单的 Spring MVC 使用 FreeMarker 模板的示例。它包括项目的基本配置、控制器和 FreeMarker 模板的使用。

1. 依赖配置

首先,你需要在 pom.xml 文件中添加 Spring MVC 和 FreeMarker 的依赖。如果你使用的是 Maven 项目,添加以下依赖:

<dependencies>
    <!-- Spring MVC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.12</version>
    </dependency>

    <!-- FreeMarker -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
</dependencies>

2. Spring MVC 配置

如果你使用的是 Spring Boot,FreeMarker 模板的默认配置通常是自动完成的。如果你使用的是非 Spring Boot 项目,需要手动配置 FreeMarkerConfigurer 和视图解析器:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;

@Configuration
public class WebConfig {

    // 配置 FreeMarker 视图解析器
    @Bean
    public ViewResolver freemarkerViewResolver() {
        FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
        resolver.setCache(true);
        resolver.setPrefix("");
        resolver.setSuffix(".ftl");
        return resolver;
    }

    // 配置 FreeMarker
    @Bean
    public FreeMarkerConfigurer freemarkerConfigurer() {
        FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
        configurer.setTemplateLoaderPath("/WEB-INF/views/");
        return configurer;
    }
}

3. 控制器

定义一个简单的控制器,将数据传递给 FreeMarker 模板并渲染视图:

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

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, FreeMarker!");
        return "hello";
    }
}

4. FreeMarker 模板

src/main/resources/templates/ 或者根据你的 FreeMarkerConfigurer 配置路径下创建一个 hello.ftl 文件。例如:

/WEB-INF/views/hello.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello FreeMarker</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

5. 运行与测试

启动 Spring 项目后,访问 http://localhost:8080/hello,你应该能够看到以下页面:

Hello, FreeMarker!

6. 总结

  • FreeMarkerConfigurer 用于配置 FreeMarker 模板加载器的路径。
  • FreeMarkerViewResolver 用于将视图名称(如 hello)解析为 FreeMarker 模板文件(如 hello.ftl)。
  • 在控制器中通过 Model 传递数据到 FreeMarker 模板,模板中使用 ${} 表达式显示数据。

通过这种方式,Spring MVC 项目可以非常轻松地集成 FreeMarker 模板引擎,实现动态 HTML 页面渲染。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值