我是靠谱客的博主 坚强鸡,最近开发中收集的这篇文章主要介绍SpringBoot使用FreeMarker模版引擎,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SpringBoot使用FreeMarker模版引擎

1.导入依赖:

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

也可以在创建的时候直接勾选
在这里插入图片描述

2.application.properties/application.yml

(注意这里一定要配置,否则controller跳转页面)
properties的:

spring.freemarker.suffix=.ftl

yml的:

spring:
  freemarker:
    suffix: .flt

3.controller层

@Controller
public class FreemarkerController {
    @RequestMapping("/getFreemarker")
    public String getFreemarker(Map map){
        User user=new User();
        user.setName("余家奇");
        user.setAge(18);
        user.setClazz("Java 5班");
        map.put("user",user);
        return  "ftlindex";
    }
}

实体类user:(后面页面会用到相关属性)

@Data
public class User {
    private String name;
    private int age;
    private String clazz;

}

4.FreeMarkder

ftlindex.ftl页面

字符串输出:
${"Hello ${user.name} !"} / ${"Hello" + user.name + "!"}
</br>
<#assign cname=r"特殊字符串完成输出(http:www.baidu.com)"/>
${cname}
</br>
----------------------------------------------------------
</br>
字符串截取:
通过下标直接获取下标对应的字母:${user.name[2]}
</br>
起点下标..结尾下标截取字符串:${user.name[0.5]}
</br>
算数运算:
<#--支持“+”、“-”、“*”、“/”、“%运算符”-->
</br>
<#assign number1=10>
<#assign number2=5>
"+" : ${number1+number2}
</br>
"-" : ${number1-number2}
</br>
"*" : ${number1*number2}
</br>
"/" : ${number1/number2}
</br>
--------------------------------------------------------------
比较运算符
<#if number1+number2 gte 12||number1-number2 lt 6>
    "*" : ${number1 * number2}
<#else>
    "/" : ${number1/number2}
</#if>
</br>
内建函数:
<#assign data="abcdABCD1234">
data:${data}
</br>
第一个字母大写: ${data?cap_first}
</br>
所有字母小写: ${data?lower_case}
</br>
所有字母大写: ${data?upper_case}
</br>
<#assign floatData=12.34>
数字去整数: ${floatData?int}
</br>
获取集合的长度:${user?size}
</br>
<#--时间格式化:${dataTime?string("yyyy-MM-dd")}-->
</br>
空判断和对象集合
<#if users??>
    <#list user as user>
        姓名:${user.name} - 年纪: ${user.age} - 班级: ${user.clazz}
    </#list>
<#else>
    ${user!变量为空则给一个默认值}
</#if>
</br>
Map集合
<#assign mapData={"name":"程序员","salary":"20000"}>
</br>
直接通过Key获取Value值:${mapData["name"]}
</br>
通过Key遍历Map<#list mapData?values as value>
    Value:${value}
</#list>
</br>
List集合:
<#assign  listData=["我的","小胖","漂亮"]>
<#list listData as value>${value}</#list>
</br>
-------------------------------------------------------------
</br>
include指令:
</br>
引入其他文件:<#include "ontherftl.ftl"/>
</br>
macro宏指令
<#macro mo>
    定义一个无参数的宏macro--${user.name}
</#macro>
使用宏macro:<@mo/>
</br>
<#macro moArgs a b c>
    自定义参数的宏macro---${a+b+c}
</#macro>
使用带参数的宏macro:<@moArgs a=1 b=2 c=3 />
</br>
</br>
命名空间:
<#import "ontherftl.ftl" as ftlindex>
${ftlindex.otherName}
</br>
<@ftlindex.addMethod a=10 b=20 />
<#assign otherName="修改ontherftl.ftl中的otherName变量值"/>
${ftlindex.otherName}
<#assign otherName="修改ontherftl.ftl中的otherName变量值" in ftlindex/>
${ftlindex.otherName}

ontherftl.ftl

<#assign otherName="小胖"/>
<#macro addMethod a b>
    ${a*b}
</#macro>

经过一整套流程下来我们基本上就会掌握freemarker使用方法啦!!!快去试试吧
还有就是也可以通过更改页面后缀面实现页面跳转 ontherftl.ftl—>ontherftl.ftlh

最后

以上就是坚强鸡为你收集整理的SpringBoot使用FreeMarker模版引擎的全部内容,希望文章能够帮你解决SpringBoot使用FreeMarker模版引擎所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部