zoukankan      html  css  js  c++  java
  • 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

    持续更新!!!

  • 相关阅读:
    《Java课程实习》日志(周二)
    spring helloworld
    [Android L or M ]解除SwitchPreference与Preference的绑定事件
    Smobiler实现列表展示—GridView(开发日志十二)
    LA 4329(树状数组)
    CreateDialog Win32 API调用的一个小问题
    Android Gallery2源代码分析
    你男朋友是程序猿吧
    javaEE之--------统计站点在线人数,安全登录等(观察者设计模式)
    AppFuse 3常见问题与解决方法
  • 原文地址:https://www.cnblogs.com/flyinghome/p/12205958.html
Copyright © 2011-2022 走看看