springboot使用FreeMarker

2023-12-31 14:21:54

刚刚介绍了Thymeleaf模板,接下来我们学习FreeMarker模板,无论是语法还是配置等,两者都有很多相似的地方。接下来,我们学习Spring Boot项目整合FreeMarker模板。

新建项目,在项目中加入Freemarker依赖,如代码

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

接下来配置FreeMarker模板属性,与Thymeleaf模板配置类似,唯一需要注意的是模板文件后缀配置的是FTL文件。配置文件如代码

server.port=8089
#缓存是否开启
spring.freemarker.cache=false
#编码格式
spring.freemarker.charset=UTF-8
#模板文件前缀
spring.freemarker.template-loader-path=classpath:/templates/
#模板文件后缀
spring.freemarker.suffix=.ftl

接下来,创建一个IndexController进行测试,内容如代码

package com.shrimpking.controller;

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

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Shrimpking
 * @create 2023/12/21 10:45
 */
@Controller
public class IndexController
{
    @GetMapping("/")
    public String index(ModelMap modelMap){
        modelMap.addAttribute("msg","hello,freemarker");
        return "index";
    }
}

在src/resources/templates下新建index.ftl(注意文件后缀),使用${msg}接收后来传送的数据,文件内容如代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <h1>${msg}</h1>
</body>
</html>

到这里,项目配置完成。启动项目,在浏览器上访问http://localhost:8089,可以看到如下结果:

?

?接下来介绍FreeMarker的常用语法。

(1)通用赋值:${xxx}格式

? 比如后台返回键值aaa=string,可以使用${aaa?string},输出“Hi , Dalaoyang !”。

? 比如后台返回键值aaa="2018-08-01 23:59",可以使用${aaa?string("EEE,MMM d,yy")},输出:星期二,八月 14,18。

? 比如后台返回键值aaa=false,可以使用${aaa?string("是","否")},输出:否。

(2)数值赋值:#{xxx}或者#{xxx;format}格式后者format可以是以下格式(其中X和Y为数字):

? mX 小数部分最小X位,比如后台返回值aaa=3.782131,可以使用#{x;m2},输出3.78。

? MX 小数部分最大X位,比如后台返回值aaa=3.782131,可以使用#{x;M3},输出3.782。

? mXMY 小数部分最小X位,最大Y位,比如后台返回值aaa=3.782131,可以使用#{x;m1M3},输出3.782。

(3)常用内建函数

? html 对字符串进行HTML编码。

? lower_case 字符串转小写。

? upper_case 字符串转大写。

? trim 去前后空格。

? size 获取集合元素数量。

? int 获取数字部分。

(4)常用指令

? if elseif else 分支控制语句。

? list 输出集合数据。

? import 导入变量。

? include 类似于包含指令。

关于FreeMarker模板的内容到这里暂时结束了,毕竟这是一本关于Spring Boot的书,详细内容可以参考官方文档进行系统学习。

文章来源:https://blog.csdn.net/modern358/article/details/135125513
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。