SpringBoot整合Freemarker实现页面静态化的详细步骤

下面是详细的步骤:

1. 创建Spring Boot项目

可以使用Spring Boot官方提供的Spring Initializr快速生成一个基础项目。

2. 添加依赖

在pom.xml文件中添加Freemarker依赖:

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

3. 配置Freemarker

在application.properties或application.yml中添加Freemarker的配置:

application.properties

# 设置Freemarker模板目录
spring.freemarker.template-loader-path=classpath:/templates
# 设置Freemarker模板缓存
spring.freemarker.cache=false
# 设置Freemarker模板后缀
spring.freemarker.suffix=.ftl

application.yml

spring:
  freemarker:
    # 设置Freemarker模板目录
    template-loader-path: classpath:/templates
    # 设置Freemarker模板缓存
    cache: false
    # 设置Freemarker模板后缀
    suffix: .ftl

4. 创建Controller

在项目中创建一个Controller,例如:

@Controller
public class IndexController {
    @Autowired
    private ArticleService articleService;

    @GetMapping("/")
    public String index(Model model) {
        // 获取最新的10篇文章
        List<Article> articleList = articleService.findLatestArticles(10);
        model.addAttribute("articleList", articleList);
        return "index";
    }
}

5. 创建模板

在templates目录下创建index.ftl文件(根据Controller中的返回值指定文件名),例如:

<!DOCTYPE html>
<html>
<head>
    <title>首页</title>
</head>
<body>
    <h1>最新文章</h1>
    <ul>
        <#list articleList as article>
            <li><a href="/article/${article.id}">${article.title}</a></li>
        </#list>
    </ul>
</body>
</html>

6. 运行应用

启动应用后,访问"http://localhost:8080/"即可看到经过Freemarker渲染后的页面。

示例1

官方示例为基础,具体步骤为:

  1. 使用Spring Initializr创建一个基础项目。
  2. 在pom.xml文件中添加依赖:

xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

  1. 创建一个可以提供hello页面的Controller。

```java
package com.example.demo;

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

@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name, Model model) {
model.addAttribute("name", name);
return "hello";
}
}
```

  1. 在resources/templates目录下创建hello.ftl文件。

```html



Welcome

Hello, ${name}!


```

  1. 启动程序,访问"http://localhost:8080/hello",即可看到页面上显示Hello, World!

示例2

以一个博客网站为例,具体步骤为:

  1. 创建一个基础项目。
  2. 添加Freemarker依赖。
  3. 配置Freemarker相关属性。
  4. 编写Controller提供文章详情页。
  5. 在模板中嵌套文章详情页面的模板。
  6. 启动程序,访问"http://localhost:8080/article/1",即可看到经过Freemarker渲染后的文章详情页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Freemarker实现页面静态化的详细步骤 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • @Accessors 注解参数

    @Accessors 注解参数经常会在实体类上看到,记录一下,方便以后复习 @Accessors注解的作用:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。 @Accessors 共有三个属性,分别是 fluent,chain,prefix fluent 属性 不写默认为false,当该值为 true 时,对应字段的 getter…

    Java 2023年5月9日
    00
  • java实现检测是否字符串中包含中文

    要判断一个字符串是否包含中文,可以考虑使用正则表达式来实现。以下是一个java实现检测字符串中是否有中文字符的代码示例: public static boolean isContainsChinese(String str) { Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); M…

    Java 2023年5月20日
    00
  • JSP 前端数据本地排序实例代码

    当我们需要对表格数据进行排序时,我们可以使用前端的JavaScript进行排序。下面是一个使用JSP和JavaScript实现前端数据本地排序的示例代码: 首先,我们可以创建一个包含表格的HTML代码,表格中的每行数据都由一个对象构成。对象中的每个属性对应每一列的数据,例如姓名、身高、年龄等。 <table id="myTable"…

    Java 2023年6月15日
    00
  • 使用@Autowired注解引入server服务层方法时报错的解决

    针对使用@Autowired注解引入server服务层方法时报错的解决方案,我将提供以下攻略: 1. 问题描述 使用@Autowired注解引入server服务层方法时,你可能会遇到以下报错信息之一: 1) The dependencies of some of the beans in the application context form a cycl…

    Java 2023年6月15日
    00
  • (starters)springboot-starter整合阿里云datahub方式

    完整攻略:Spring Boot整合阿里云DataHub 一、前置条件在开始整合之前,需要先确保以下几个条件: 阿里云账号及DataHub服务我们需要一个已开通DataHub服务的阿里云账号,假设我们已有一个名为”test-datahub”的DataHub项目。 工具准备a) Maven及Java IDE(本文以Intellij IDEA为例)b) 阿里云S…

    Java 2023年5月20日
    00
  • Spring框架+jdbcTemplate实现增删改查功能

    Spring框架+jdbcTemplate实现增删改查功能 Spring框架是一个非常流行的Java开发框架,它提供了很多便捷的功能,其中包括JdbcTemplate。JdbcTemplate是Spring框架中的一个核心组件,它提供了一种简单的方式来访问数据库。本文将详细介绍如何使用Spring框架和JdbcTemplate实现增删改查功能。 环境准备 在…

    Java 2023年5月17日
    00
  • SpringMVC接收与响应json数据的几种方式

    SpringMVC接收与响应json数据的几种方式 在SpringMVC中,我们可以使用多种方式来接收和响应JSON数据。本文将介绍其中的几种方式,并提供两个示例说明。 方式一:使用@RequestBody注解 使用@RequestBody注解可以将请求体中的JSON数据转换为Java对象。可以通过以下方式使用: @PostMapping("/us…

    Java 2023年5月17日
    00
  • Java字符串查找的三种方式

    Java字符串查找有多种方式,其中比较常见的有三种:indexOf()、lastIndexOf()和contains(),下面分别进行详细讲解。 使用indexOf()方法查找字符串 indexOf()方法将返回指定字符串在当前字符串中第一次出现的位置。该方法属于String类,它有多个重载版本,可以根据传入的参数来控制查找的起点和查找的方向。例如: Str…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部