跟着江南一点雨学习SpringBoot(二)整合视图层技术Freemarker

跟着江南一点雨学习SpringBoot(二)整合视图层技术Freemarker

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Freemarker的学习


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

今天继续学习SpringBoot的知识>>>>>>>>视图层的技术freemarker


提示:以下是本篇文章正文内容,下面案例可供参考

一、freemarker是什么

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

二、freemarker使用步骤

1.导入包

在pom.xml中新增依赖

代码如下(示例):

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

2.建立bean对象

代码如下(示例):

public class User {
    private Long id ;
    private String userName;
    private String userAddress;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", userAddress='" + userAddress + '\'' +
                '}';
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserAddress() {
        return userAddress;
    }

    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress;
    }
}

3.建立Controller层

@Controller
public class UserController {
    @GetMapping("/user")
    public String user(Model model){
        List<User> users = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setId((long)i);
            user.setUserName("mixxx>>>"+i);
            user.setUserAddress("永德路>>>"+i);
            users.add(user);
        }
        model.addAttribute("users",users);
        return "user";
    }
}

4.创建视图模版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1">
    <tr>
        <td>编号</td>
        <td>用户名</td>
        <td>用户地址</td>
    </tr>
    <#list users as user>
        <tr>
            <td>${user.id}</td>
            <td>${user.userName}</td>
            <td>${user.userAddress}</td>
        </tr>
    </#list>
</table>

</body>
</html>

5.最终页面呈现

在这里插入图片描述

三、spring-boot-starter-freemarker一些源码注解分析

(1)FreeMarkerAutoConfiguration.class

FreeMarker的自动配置类,是FreeMarker配置的核心类

@ConditionalOnClass

@ConditionalOnClass({freemarker.template.Configuration.class, FreeMarkerConfigurationFactory.class})
这个注解的意思是只有当classpath中存在这个类时,才会建立该Bean,正因为我们导入了FreeMarker包,所以才存在这个类,所以才创建了该Bean

@Import

@Import({FreeMarkerServletWebConfiguration.class, FreeMarkerReactiveWebConfiguration.class, FreeMarkerNonWebConfiguration.class})
注解是用来导入配置类或者一些需要前置加载的类.

(2)FreeMarkerProperties.class

FreeMarker的配置类,里面写着一些默认的配置,例如:
默认将视图文件放哪里:

public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";

视图文件后缀是什么:

public static final String DEFAULT_SUFFIX = ".ftlh";

(3)FreeMarkerServletWebConfiguration.class

WEB核心实现类,体现实际页面处理的过程

@ConditionalOnMissingBean

@ConditionalOnMissingBean(
        name = {"freeMarkerViewResolver"}
    )

该标签说明,如果设置了Resulver就用你自己设置的,如果没有就用默认的freeMarkerViewResolver

四、freemarker常见指令

在这里插入图片描述
具体可参考:http://freemarker.foofun.cn/

总结

提示:这里对文章进行总结:

浅学了一下freemarker

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值