2021-04-11-FreeMarker模板引擎

本文介绍FreeMarker模板引擎的基础用法,包括如何在Spring Boot中引入并配置FreeMarker,以及通过实例展示如何使用FreeMarker生成静态网页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

  • FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。
    虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据,简单来讲就是模板加数据模型,然后输出页面(如下图)

在这里插入图片描述

快速使用

  • 创建SpringBoot项目,引入FreeMarker依赖
<!-- 添加freemaker依赖-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

  • 学习Freemarker的默认配置,一般我们无需修改配置
  • 创建模板页面hello.ftl
    在这里插入图片描述

基本操作

访问对象的方式:${stu.name}

遍历集合
<#list list as stu>
	序号:${stu_index} 
	姓名:${stu.name} 
	电话:${stu.phone}
</#list>

逻辑判断
<#if (age > 40)> 
大叔级
<#elseif (age>30) > 
老腊肉
<#else > 
小鲜肉
</#if>

NULL值的处理
${nullObject!}
<#if nullObject??> 
该值不为null
<#else > 该值为null
</#if>

例子:生成单个商品的静态页面

  • Controller
@RequestMapping("/createHtml")
public String  createHtml(Integer gID, HttpServletRequest req) throws Exception {

    // 1.根据商品ID查询对象
    Goods goods= goodsService.getById(gID);

    Map<String,Object> map = new HashMap<String, Object>();
    map.put("goods",goods);
    map.put("images",goods.getGimage().split("\\|"));
    map.put("contextPath",req.getContextPath()+"/");

    // 1.获取静态资源你文件路径
    String path = ItemController.class.getClassLoader().getResource("static").getPath();

    File file = new File(path+File.separator+"page");

    // 2.创建页面存在的路径
    if(!file.exists()){
        file.mkdirs();
    }
    try {
        // 3.获取模板
        Template template = configuration.getTemplate("goodsItem.ftl");

        // 4.设置生成模板的路径
        FileWriter fileWriter = new FileWriter(file.getAbsolutePath()+File.separator+gID+".html");

        // 5.生成模板
        template.process(map,fileWriter);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}

  • 单个商品模板
    设置base属性
    在这里插入图片描述
    遍历图片集合
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值