Springboot整合FreeMarker

目录

一、创建项目

二、配置文件

 三、语法模板

四、编码

boolean类型 

时间类型 

​ 空值处理

 显示数据list

if指令

assign指令

global指令

​ 项目地址全路径:


一、创建项目

勾选FreeMarker模板引擎

二、配置文件

yml文件中增加配置freemarker

freemarker :
# 指定 HttpServletRequest 的属性是否可以覆盖 controller model 的同名项
allow-request-override : false
#req 访问 request
request-context-attribute : req
# 后缀名 freemarker 默认后缀为 .ftl ,当然你也可以改成自己习惯的 .html
suffix : .ftl
# 设置响应的内容类型
content-type : text/html;charset=utf-8
# 是否允许 mvc 使用 freemarker
enabled : true
# 是否开启 template caching
cache : false
# 设定模板的加载路径,多个以逗号分隔,默认 : [“classpath:/templates/”]
template-loader-path : classpath : /templates/
# 设定 Template 的编码
charset : UTF-8
# ftl 文件的更新时间
template_update_delay : 0

 

 三、语法模板

前端使用${ }接收后端传过来的值

设置freemarker文件的模板 ,以后新建freemarker文件时会自带编辑的代码

四、编码

 1.后端传值

controller类注解@controller,方法中使用model或 modelView存值

boolean类型 

 当把f1传到前端页面去,由于f1是Boolean类型,所以应该这样取值

<h1>${f1?c}</h1>

 c为内建函数

<h1>${f1?then("yes","no")}</h1>

then相当于三元运算符

页面显示

 

时间类型 

model.addAttribute("f2",new Date());

显示时间类型

<h1>${f2?time}</h1>

 空值处理

在freemarker中不支持值为null,下面表达式的意思是如果f3为空就显示no f3字符串

 ​​​​<h1>${f3!"no f3"}</h1>

 还可以用下面这种方式

<h1>${f3???c}</h1>

 两个问号代表f3是否有值,由于判断是Boolean类型,所以应该用?c转化成string类型,否则会报错

结果显示

 显示数据list

将查询到的数据放到请求中

前端代码

<#list book as b>
${b.name}
    <#else>当前没有数据
</#list>

模拟查询不到数据的情况page=100页

if指令

前端

<#if f1>
    真的
    <#else >
    假的
</#if>

assign指令

定义变量,也就是说在当前页面上有一个num的变量,值为111

<#assign num=111>

global指令

全局变量,所以页面可用,但是assign只能用于单页面

表格展示数据

<#list book>
    <table align="center" class="b1">
        <tr>
            <td>id</td>
            <td>名称</td>
            <td>作者</td>
            <td>价格</td>
          <#--  <td>操作</td>-->
        </tr>
        <#items as b>
            <tr>
                <td>${b.id}</td>
                <td>${b.name}</td>
                <td>${b.author}</td>
                <td>${b.price}</td>
              <#--  <td><a>删除</a><a>修改</a></td>-->
            </tr>
        </#items>
    </table>
    <ul>
        <li><a href="/?page=${pagebean.prevPage()}">上一页</a></li>
        <li><a href="/?page=${pagebean.nextPage()}">下一页</a></li>
    </ul>
    <#else>当前没有数据
</#list>

结果

 项目地址全路径:

${springMacroRequestContext.getContextPath()}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Freemarker是一种模板引擎,可以将数据和模板进行整合生成输出内容。SpringBoot提供了对Freemarker的支持,可以很方便地整合Freemarker。 1. 添加依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 2. 配置文件 在application.properties文件中添加以下配置: ```properties spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.cache=false ``` - template-loader-path:模板文件的路径,这里设置为classpath:/templates/,表示在项目的classpath下的templates目录中查找模板文件。 - cache:是否开启模板缓存,这里设置为false,表示关闭缓存。 3. 创建模板文件 在classpath:/templates/目录下创建一个名为index.ftl的模板文件,内容如下: ```html <!DOCTYPE html> <html> <head> <title>SpringBoot整合Freemarker</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 4. 创建控制器 创建一个名为IndexController的控制器,代码如下: ```java @Controller public class IndexController { @RequestMapping("/") public String index(Model model) { model.addAttribute("message", "Hello, World!"); return "index"; } } ``` 该控制器中,使用@RequestMapping注解指定了请求路径为/,并将一个名为message的属性值设置为“Hello, World!”,然后返回了index作为视图名称。由于配置了spring.freemarker.template-loader-path=classpath:/templates/,所以SpringBoot会在classpath:/templates/目录下查找名为index的模板文件,并将模板文件中的${message}替换为“Hello, World!”。 5. 运行程序 启动应用程序,访问http://localhost:8080/,可以看到页面中显示了“Hello, World!”的字样。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值