• 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

    持续更新!!!

  • 相关阅读:
    DNNClassifier 深度神经网络 分类器
    浏览器对MP4视频 帧宽度 高度的兼容性
    UnicodeEncodeError:'latin-1' codec can't encode character
    文件夹下 文件计数
    the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.
    the “identity” of an object
    广告特征 用户特征
    如果一个维度全覆盖,则有效维度应该对该维度全覆盖
    a high-level neural networks AP
    使用 LDA 挖掘的用户喜好主题
  • 原文地址:https://www.cnblogs.com/flyinghome/p/12205958.html
Copyright © 2020-2023  润新知