freemarker的学习(一)(简介以及与springboot的整合)

什么是freemarker

百度百科上的定义如下:

 

这里要注意:它是一款模板引擎,而不是一个web框架,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 文等。

初步可以理解为,我在后台为一些变量用键值对的形式赋值,前台直接使用一些固定符号,里面填入键的名称,就可以对应获取到值了。

举个简单的例子:

java后台代码中我们写上:("name","张三");  

前台html页面我们选择一处写上:名称是:$(name) 那么最终输出的结果就是名称是:张三

 

freemarker的优点

1. 可以彻底的分离表现层和业务逻辑。

  传统的jsp页面中会出现很多的java后台代码,这样就使得前台看上去很乱,不好维护。

2. 提高开发效率

  JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换。相对于JSP来说,freemarker模板技术不存在编译和转换的问题,所以就不会存在上述问题。

3. 开发过程中人员分工更明确

  负责前台的专门写前台代码,负责后台的只需要写好前台需要的值就可以了。

 

springboot整合freemarker

1. 首先pom.xml中添加相关的依赖

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

2. application中添加freemarker的一些配置信息

注意:

spring.freemarker.template-loader-path  意思为设定ftl文件路径
spring.freemarker.suffix= .ftl  意思为指明freemarker文件的后缀名

spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix= .ftl

3. 在templates文件夹下创建一个.ftl结尾的文件。这里我是起名为index.ftl。其中${name}就是freemarker的前台获取方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>FreeMarker测试</title>
</head>
<body>
<h3>${name}</h3>
</body>
</html>

4. 在后台里写上跳转页面及赋值的方法

//浏览器中输入http://localhost:8080/fileoperate/index即可访问
@Controller
@RequestMapping("/fileoperate")
public class fileOperateController {

    @RequestMapping("/index")
    public String toIndex(Model model){
        model.addAttribute("name","张三");
        return "index";
    }

}

5. 测试结果

 

 

 

参考:

1. https://blog.csdn.net/qq_30644579/article/details/78698249

2. https://www.jianshu.com/p/9ac0345deb8c

持续更新!!!

 

posted @ 2020-03-12 20:07  夏夜凉凉  阅读(382)  评论(0编辑  收藏  举报