【SpringBoot系列03】SpringBoot之使用freemark视图模板

【SpringBoot系列01】初识SpringBoot

【SpringBoot系列02】SpringBoot之使用Thymeleaf视图模板

【SpringBoot系列03】SpringBoot之使用freemark视图模板

【SpringBoot系列04】SpringBoot之使用JPA完成简单的rest api

【SpringBoot系列05】SpringBoot之整合Mybatis

前言

freemarker介绍;

   FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,   并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。       它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

前面我介绍了如何整合thymeleaf,那么现在我们再来了解一下SpringBoot中如何使用freemark

一、目标

使用freemark视图模板,并且于SpringBoot进行整合。 使用freemark显示用户(user)的信息

二、实现

首先创建一个SpringBoot项目,添加如下依赖

<dependencies>

        <!-- freemark -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-freemarker</artifactId>

        </dependency>



        <!-- web -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>



        <!-- test -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

添加完依赖以后,就需要编写对应的ControllerviewUser.java

src/main/java/com/yukong/chapter22目录下新建User

package com.yukong.chapter22;



import java.util.Date;



/\*\*

 \* @Auther: xiongping22369

 \* @Date: 2018/8/13 17:53

 \* @Description: user类

 \*/

public class User {



    /\*\*

     \* 用户名

     \*/

    private String username;



    /\*\*

     \* 密码

     \*/

    private String password;



    /\*\*

     \* 年龄

     \*/

    private Integer age;



    /\*\*

     \* 性别 1=男 2=女 其他=保密

     \*/

    private Integer sex;





    public String getUsername() {

        return username;

    }



    public void setUsername(String username) {

        this.username = username;

    }



    public String getPassword() {

        return password;

    }



    public void setPassword(String password) {

        this.password = password;

    }



    public Integer getAge() {

        return age;

    }



    public void setAge(Integer age) {

        this.age = age;

    }



    public Integer getSex() {

        return sex;

    }



    public void setSex(Integer sex) {

        this.sex = sex;

    }



}

编写IndexController 实现将User信息传递给前台ftl页面。

@Controlle

public class IndexController {



    @GetMapping("/aboutMe")

    public String index(Model model) throws ParseException {

        User user = new User();

        user.setUsername("yukong");

        user.setPassword("abc123");

        user.setAge(18);

        user.setSex(1);

        model.addAttribute("user", user);

        return "index";

    }



}

注意这里使用的是@Controller

resource目录下新建templates文件夹并且在该目录下新建文件index.ftl

记住是ftl freemark文件的后缀名是ftl

index.ftl代码

<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport"

          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>freemark</title>

</head>

<body>

    <p> 你好 ${user.username}</p>

    <p> 密码 ${user.password}</p>

    <p> 性别:

           <#if user.sex==1>

              男

           <#elseif user.sex==2>

              女

           <#else>

              保密

           </#if>

    </p>

    <p> 年龄 ${user.age}</p>

</body>

</html>

然后在src/resource/application.yml配置一下thymeleaf相关配置

server:

  port: 8989

spring:

  freemarker:

    request-context-attribute: req  #req访问request

    suffix: .ftl  #后缀名

    content-type: text/html

    enabled: true

    cache: false #缓存配置

    template-loader-path: classpath:/templates/ #模板加载路径 按需配置

    charset: UTF-8 #编码格式

    settings:

      number\_format: '0.##'   #数字格式化,无小数点

启动Chapter22Application.java并且访问http://localhost:8989/aboutMe

结果如图

image.png

由上图可知,freemark成功接受到了后台传递的数据。并且渲染到页面显示。

三、总结

此致我们SpringBoot整合freemark就完毕了。

最后配套教程的代码全部在这里

github https://github.com/YuKongEr/SpringBoot-Study

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动开发之家

Flutter完整开发实战详解(二、 快速开发实战篇)

 作为系列文章的第二篇,继《Flutter完整开发实战详解(一、Dart语言和Flutter基础)》之后,本篇将为你着重展示:如何搭建一个通用的Flutter ...

1.8K10
来自专栏游戏杂谈

Nginx中的PHP缓冲问题

按代码理解似乎应该是每过1秒钟,将输出一个数字,从10~1 (运行时间>10ms)

23920
来自专栏Netkiller

Shell 高级编程

Shell 高级编程 Shell 更多是被看成一种批处理命令,确实很多是是吧 Shell当成批处理去使用的。 我确不这么看,我认为要想开发程序一样去写Shel...

40860
来自专栏Ryan Miao

banner自动生成工具,ascii文字展示

前言 post@ Ryan-Miao@github.io Spring-Boot里有个banner的功能,刚开始觉得很鸡肋。然而,现在觉得蛮有意思的。无聊的程序...

1.3K60
来自专栏vue学习

24、商品列表页之数据渲染和传值

(1)data中定义一个list对象 (2)将res.data.goodslist赋值给list (3)我们将商品图片、文字描述、价格、折扣等等信息传给子组...

16510
来自专栏微信小程序开发

小程序国际化实现机制

57720
来自专栏DeveWork

续:WordPress 文章图片部署真正的懒加载(Lazy Load)

几天前分享了《WordPress 中部署真正的懒加载(Lazy Load)》一文,教会了大家在WordPress 中的两个地方部署懒加载:缩略图、头像图片。今天...

27980
来自专栏web编程技术分享

【Java框架型项目从入门到装逼】第十一节 用户新增之把数据传递到后台

35250
来自专栏君赏技术博客

一键替换Key Mac软件的制作教程第一篇

我们要选择macOS的平台选择Cocoa Application的工程模板,点击Next.

16410
来自专栏小狼的世界

封装内容和功能 – YUI TabView使用小记

本文主要内容取自 Caridy Patino 在2008年发布的文章,原文中使用的是YUI2,笔者对例子做了一些更新,均使用了YUI3.1.1,文章中讨论的这个...

13120

扫码关注云+社区

领取腾讯云代金券