Freemarker入门

 Freemarker官网

Template + data-model = output - Apache FreeMarker Manualicon-default.png?t=N7T8https://freemarker.apache.org/docs/dgui_quickstart_basics.html

整体结构

Freemarker入门_第1张图片


1、在pom文件中导入依赖

  
        
        
            org.springframework.boot
            spring-boot-starter
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-freemarker
        
        
        
            org.projectlombok
            lombok
        

    

父工程版本依赖

因为此处引用了父工程的版本依赖,附上


        1.8
        8.5.28
        
        5.0.5.RELEASE
        1.3.1
        3.4.5
        1.1.6
        2.6
        1.3.2
        1.3.3
        1.10
        3.6
        3.9.1
        8.18.0
        1.18.20
        2.7.0
        1.2.30
        1.27.0.0
        8.0.11
        6.2.1
        24.0-jre
        Greenwich.SR2
        
    
    
    
        
            
                org.springframework.boot
                spring-boot-dependencies
                2.1.3.RELEASE
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.1.0.RELEASE
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                mysql
                mysql-connector-java
                ${mysql-connector-java.version}
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                ${mybatis-spring-boot.version}
            
            
                com.github.pagehelper
                pagehelper-spring-boot-starter
                1.2.4
            
            
                com.alibaba
                druid
                ${druid.version}
            

            
                com.squareup.okhttp3
                okhttp
                ${okhttp.version}
            
            
                com.netflix.feign
                feign-okhttp
                ${feign-okhttp.version}
            
            
                commons-io
                commons-io
                ${commons-io.version}
            
            
                org.apache.commons
                commons-io
                ${org.apache.commons.io.version}
            
            
                commons-fileupload
                commons-fileupload
                ${commons-fileupload.version}
            
            
                commons-codec
                commons-codec
                ${commons-codec.version}
            
            
                org.apache.commons
                commons-lang3
                ${commons-lang3.version}
            
            
                org.projectlombok
                lombok
                ${lombok.version}
            
            
                io.springfox
                springfox-swagger2
                ${springfox-swagger.version}
            
            
                io.springfox
                springfox-swagger-ui
                ${springfox-swagger.version}
            
            
                com.alibaba
                fastjson
                ${fastjson.version}
            
            
                net.oschina.zcx7878
                fastdfs-client-java
                ${fastdfs-client-java.version}
            

            
                org.elasticsearch.client
                elasticsearch-rest-high-level-client
                ${elasticsearch.version}
            
            
            
                org.elasticsearch
                elasticsearch
                ${elasticsearch.version}
            
            
                com.google.guava
                guava
                ${guava.version}
            

        
    

2、resources下的页面模板

在resources下新建templates文件夹

并添加页面user.ftl

注意:文件夹名称templates不可改变,页面后缀.ftl不可改变。(在补充解释)

Freemarker入门_第2张图片



    Welcome!


Welcome ${user}!

Our latest product: ${latestProduct.name}!

3、application.yml配置

server:
  port: 8888
spring:
  application:
    name: test-freemarker
  freemarker:
    charset: UTF-8
    #suffix:
    cache: false
    settings:
      template_update_delay: 0 #检查模板更新延迟时间,设置为 0 表示立即检查,如果时间大于 0 会有缓存不方便进行模板测试

4、controller层——TestFreemarker 

import com.lxw.pojo.Product;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Map;

@Controller
public class TestFreemarker {

    @GetMapping
    public String test(Map map){
        map.put("user","李白");
        Product product = new Product();
        product.setUrl("http://www.baidu.com");
        product.setName("百度");
        map.put("latestProduct",product);
        return "user";
    }

}

 5、pojo层——Product 类

package com.lxw.pojo;


import lombok.Data;

@Data
public class Product {
    private String url;
    private String name;

}

6、启动类——TestFreemarkerApplication 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TestFreemarkerApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestFreemarkerApplication.class,args);
    }

}

启动测试!

最后在启动类中启动测试,访问网址:http://localhost:8888/

Freemarker入门_第3张图片

补充:

resources下的文件夹和页面名后缀为什么不能随意更改呢?

上依赖文件源码!

Freemarker入门_第4张图片

Freemarker入门_第5张图片

Freemarker入门_第6张图片 Freemarker入门_第7张图片

springboot采用约定大于配置的原则,默认属性都在这里设置,现在明白了吧!

那么如何自定义呢?

问的好! 

答:在application.yml配置文件中给对应属性赋值就会覆盖默认属性,以达到自定义的效果。

例如:修改页面文件的后缀名.ftl为.html,只需要给该属性赋值就好了

Freemarker入门_第8张图片

先在就可以 以.html结尾了。 

Freemarker入门_第9张图片

你可能感兴趣的:(项目,java,Freemarker)