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

    持续更新!!!

  • 相关阅读:
    ajax 406 Not Acceptable
    HTTP Status 400
    HTTP Status 500
    ClassNotFoundException: javax.validation.ValidatorFactory
    mysql 外键引发的删除失败
    Cannot invoke Tomcat manager: socket write error
    记一次恐怖的 Integer 溢出
    又见 tomcat启动startup.bat一闪而过
    Cannot run Eclipse; JVM terminated. Exit code=13
    The type javax.swing.JComponent cannot be resolved. It is indirectly referenced from required .class files
  • 原文地址:https://www.cnblogs.com/flyinghome/p/12205958.html
Copyright © 2011-2022 走看看