SpringBoot--整合FreeMarker--使用/实例

news2024/11/24 10:40:42

原文网址:SpringBoot--整合FreeMarker--使用/实例_IT利刃出鞘的博客-CSDN博客

简介

本文介绍SpringBoot如何使用FreeMarker。

配置文件

application.yml

spring:
  #模板引擎 freemarker
  freemarker:
    # 模板后缀
    suffix: .ftl
    # 是否启用模板缓存
    cache: false
    # 模板编码
    charset: UTF-8
    # 设置ftl文件根路径
    template-loader-path: classpath:/templates
    # 是否检查模板位置是否存在
    check-template-location: true
    # Content-Type value
    content-type: text/html
    # 设定所有request的属性在merge到模板的时候,是否要都添加到model中
    expose-request-attributes: true
    # 是否在merge模板的时候,将HttpSession属性都添加到model中
    expose-session-attributes: true
    # request-context为request
    request-context-attribute: request

依赖

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

后端代码

Controller

package com.example.knife.entity;

import lombok.Data;

@Data
public class User {
    private Integer age;

    private String name;

    private String email;
}

Entity

package com.example.knife.controller;

import com.example.knife.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class UserController {
    @GetMapping("user")
    public String user(Model model) {
        User user = new User();
        user.setAge(25);
        user.setEmail("abc@qq.com");
        user.setName("Tony");
        model.addAttribute("userInfo", user);
        return "user";
    }
}

前端代码

user.ftl(resources/templates目录下)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>FreeMarker 实验</title>
    <style>
        table,td {
            border: black 1px solid;
        }
    </style>
</head>
<body>
<table>
    <tr>
        <td>姓名</td>
        <td>年龄</td>
        <td>Email</td>
    </tr>
    <tr>
        <td>${userInfo.name}</td>
        <td>${userInfo.age}</td>
        <td>${userInfo.email}</td>
    </tr>
</table>
</body>
</html>

测试

访问:http://localhost:8080/user

测试List

修改Controller

package com.example.knife.controller;

import com.example.knife.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
public class UserController {
    @GetMapping("users")
    public String users(Model model) {
        List<User> userList = new ArrayList<>();

        User user1 = new User();
        user1.setAge(25);
        user1.setEmail("abc@qq.com");
        user1.setName("Tony");

        User user2 = new User();
        user2.setAge(26);
        user2.setEmail("ddd@qq.com");
        user2.setName("Peter");

        userList.add(user1);
        userList.add(user2);

        model.addAttribute("userInfos", userList);
        return "users";
    }
}

添加users.ftl(resources/templates目录)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>FreeMarker 实验</title>
    <style>
        table,td {
            border: black 1px solid;
        }
    </style>
</head>
<body>
<table>
    <tr>
        <td>姓名</td>
        <td>年龄</td>
        <td>Email</td>
    </tr>
    <#list userInfos as userInfo>
        <tr>
            <td>${userInfo.name}</td>
            <td>${userInfo.age}</td>
            <td>${userInfo.email}</td>
        </tr>
    </#list>

</table>
</body>
</html>

测试

访问:http://localhost:8080/users

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、MySQL启动和客户端连接

一、启动 方法一&#xff1a; 1、winR&#xff0c;输入services.msc&#xff0c;按回车 2、找到MySQL&#xff0c;右键-启动/停止 MySQL安装后&#xff0c;默认已启动。 方法二、 1、winR&#xff0c;输入cmd&#xff0c;打开命令行 2、输入启动与停止命令 二、客户端连接 …

如何使用ArcGIS Pro进行洪水淹没分析

伴随Esri将重心越来越多的放在ArcGIS Pro上,以后ArcGIS的使用场景可能会越来越少,所以我们可以提前接触并使用ArcGIS Pro,做好相关准备。这里为大家介绍一下在ArcGIS中常见的操作——洪水淹没分析在ArcGIS Pro中如何实现。 01 加载数据 在菜单栏上点击插入,点击新建地图,…

UEC++:HUD

绘制文字&#xff1a; Canvas&#xff1a;必须需要字体 Canvas的颜色设置&#xff1a; 不失真放大字体&#xff1a; 绘制图片&#xff1a; 复杂方式绘制图片&#xff1a; 绘制材质球&#xff1a; 绘制线条&#xff1a;起始位置&#xff0c;终点位置&#xff0c;颜色&#xff0c…

MySQL入门教程(1)

文章目录 一. 数据库简介1.1 什么是数据库1.2 数据库的分类 二. MySQL2.1 MySQL简介2.2 MySQL的客户端2.3 MySQL的服务器2.4 总结 一. 数据库简介 1.1 什么是数据库 数据库是一类软件, 帮助我们管理数据. 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 文件保…

latex 好看的文本框框

嘿嘿&#xff0c;完全符合我的审美&#xff0c;我真是小机灵鬼~ 分享给大家 \begin{tcolorbox}[colbackgray!20, colframegray!100, sharp corners, leftrule{3pt}, rightrule{0pt}, toprule{0pt}, bottomrule{0pt}, left{2pt}, right{2pt}, top{3pt}, bottom{3pt}]blablabla …

React(3)

1.案例选项卡 import React, { Component } from reactexport default class App extends Component {state{tabList:[{id:1,text:"电影"},{id:2,text:"影院"},{id:3,text:"我的"}]}render() {return (<div><ul>{this.state.tabList…

verilog实现pwm呼吸灯

文章目录 verilog实现pwm呼吸灯一、简介二、代码设计三、仿真代码编写四、仿真结果五、总结 verilog实现pwm呼吸灯 一、简介 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化&#xff0c;感觉好像是人在呼吸。其广泛应用于手机之上&#xff0c;并成为各大品牌新款手…

杰理-AC695-页面之间跳转、页面内布局切换

杰理-AC695-页面之间跳转、页面内布局切换 //布局切换 ui_show(BT_MENU_LAYOUT); //页面切换 ui_hide_main(ID_WINDOW_BT); ui_show_main(ID_WINDOW_SYS);

3、java入门教程【数据类型】

一、概述 java中数据类型分为两大类&#xff1a;【基本数据类型】和【引用数据类型】 二、基础数据类型 数据类型含义默认值取值范围存储大小&#xff08;字节&#xff09;整型byte字节型0-128 到 1271整型short短整型0-2^15 到 2^15-12整型int【默认】整形0-2^31 到 2^31-14…

TMS Scripter v7.28 for Delphi

TMS Scripter v7.28 for Delphi 使用本地Pascal或Basic脚本以及带有可视化表单设计器、对象检查器等的完整IDE(集成开发环境)&#xff0c;为您的应用程序添加终极灵活性和强大功能。通过在您的应用程序中构建脚本支持&#xff0c;您可以在应用程序中提供高度的可配置性、灵活性…

fiddler抓取,Android真机测试

1.配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的&#xff0c;需要进行相应的配置。 打开Fiddler&#xff0c;选择“Tools->Fiddler Options...” 2.在弹出的对话框中选择“HTTPS”选项卡&#xff1a; 3.勾选“Capture HTTPS CONNECTs”&#xff0c;接着勾选…

Elisp之获取绝对路径和相对路径(二十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Javascript 如何实现继承?

简单来说 js 实现继承的方式有很多种&#xff0c;比如 原型链继承、借用构造函数继承、组合继承、寄生继承、寄生组合继承、ES6 新增的 extends 继承一般我开发中用的比较多的就是 原型链继承 还有 class 类函数继承。 其他的基本用得少&#xff0c;主要是平时看一些技术博客类…

MySql 知识大汇总

目录 一、常用的数据类型 二、数据库索引 什么是数据库索引 索引的作用 索引是否越多越好 索引的分类 三、sql语句 插入 更新 删除 查询 普通查询 子查询 连表查询 四、常用的一些函数 group by 分组 order by 排序 HAVING 子句 根据条件…

5、传输层UDP28

传输层&#xff1a;负责俩端之间的数据传输&#xff08;TCP&UDP&#xff09; UDP协议&#xff1a;协议格式&#xff08;协议实现&#xff09;、协议特性、编程影响 一、协议格式&#xff08;协议实现&#xff09; 面试&#xff1a;传输层的数据结构是什么&#xff1f; 就是…

1.计算机系统概述

1.1 计算机发展历程 1.1.1计算机硬件的发展 1.逻辑元件的四代变化&#xff1a; 电子管->晶体管->中小规模集成电路->超大规模集成电路 第四代计算机时代产生了微处理器&#xff0c;是微型计算机发展的标志。 2. 计算机元件的更新换代 如半导体存储器、微处理器都在不断…

IDEA配置maven国内源

这里写目录标题 前言注意第一步 前言 为什么要配置maven国内源, 因为如果不配置国内源,一个是依赖加载速度过慢, 另一个是可能会导致创建spring / Springboot创建失败,或者是在maven项目中引入jar包失败,从而导致项目运行失败 注意 配置要配置俩次 第一步 选择settings …

【复习8-9天内容】【我们一起60天准备考研算法面试(大全)-第十三天 13/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

数字检测Y8S

【免费】数字检测Y8S&#xff0c;只需要OPENCV-深度学习文档类资源-CSDN文库 采用YOLOV8训练&#xff0c;得到PT模型&#xff0c;然后直接转ONNX&#xff0c;使用OPENCV的DNN&#xff0c;不需要其他依赖&#xff0c;支持C/PYTHON

【CodeWhisperer】 亚马逊AI辅助代码生成工具

Amazon CodeWhisperer 定价 Amazon CodeWhisperer 直接在集成式开发环境 (IDE) 中为开发人员提供实时代码建议。个人开发人员可以免费使用 CodeWhisperer。组织为使用 CodeWhisperer 按“每位用户每月”支付固定的订阅费&#xff0c;无需预付费用或长期承诺。 CodeWhisperer 提…