Spring Boot 整合之模板引擎(jsp、Freemarker 、Thymeleaf )

整合JSP模板

 

添加依赖

创建 maven 工程,在 pom.xml 文件中添加如下依赖:


   javax.servlet
   jstl
   1.2


   org.apache.tomcat.embed
   tomcat-embed-jasper

创建目录和配置文件

1. JSP页面放在:/src/main/webapp/WEB-INF/jsp/目录下(webapp/WEB-INF/jsp 没有就自己创建),如:

/src/main/webapp/WEB-INF/jsp/index.jsp

 

2. CSS或JavaScript之类的静态文件:/src/main/resources/static/目录下,如:

/src/main/resources/static/css/main.css

 

3. 对于属性文件放在:/src/main/resources/目录下,如:

/src/main/resources/application.properties

 

配置application.properties

只需要添加这2个就可以了,如下:​

#页面默认前缀目录

spring.mvc.view.prefix=/WEB-INF/jsp/

#页面默认后缀目录

spring.mvc.view.suffix=.jsp

或在application.yml中:spring节点下面:

spring:

    mvc:

        view:

           prefix: /WEB-INF/jsp/

           suffix: .jsp

创建JSP页面文件夹

在src/main/webapp中的WEB-INF/下创建jsp文件夹,用于存放jsp页面文件。


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${map}


编写Controller

package club.lygangdai.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;

/**
 * @author Uncle Liu
 * @ClassName: TestController
 * @Description: TODO(类说明 :)
 * @date 2018/11/7 11:31
 */
@Controller
@RequestMapping("/jsp")
public class TestController {

    @RequestMapping("/index")
    public String hello(Map map) {
        map.put("map", "Hell");
        return "index";
    }
}

结果如下:

Spring Boot 整合之模板引擎(jsp、Freemarker 、Thymeleaf )_第1张图片

 

整合Freemarker 模板

添加 Freemarker 依赖


org.springframework.boot
spring-boot-starter-freemarker

添加 Freemarker 模板配置

在 application.properties 中添加如下内容:

spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
spring.freemarker.prefix=
spring.freemarker.suffix=.ftl

上述配置都是默认值。

编写Controller

package club.lygangdai.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;

/**
 * @author Uncle Liu
 * @ClassName: FreemarkerController
 * @Description: TODO(类说明 :)
 * @date 2018/11/7 11:32
 */
@Controller
@RequestMapping("/freemarker")
public class FreemarkerController{

    @RequestMapping("/hello")
    public String hello(Map map) {
        map.put("map", "Hell Freemarker");
        return "freemarker";
    }
}

在 templates 目录中创建名为 freemarker .ftl 文件,内容如下:




    
    Document
    


${map}

结果如下:

Spring Boot 整合之模板引擎(jsp、Freemarker 、Thymeleaf )_第2张图片

整合Thymeleaf  模板

添加 Thymeleaf依赖


        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        

添加 Thymeleaf模板配置

在 application.properties 中添加如下内容:

#thymeleaf模板
spring.thymeleaf.cache=true
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html

上述配置都是默认值。

编写Controller

package club.lygangdai.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller
@RequestMapping("thymeleaf")
public class ThymeleafController {

    @RequestMapping("thymeleaf")
    public String hello(Map map) {
        map.put("map", "Hello Thymeleaf");
        return "thymeleaf";
    }
}

在 templates 目录中创建名为 thymeleaf.html 文件,内容如下:




    
    Title


结果如下:

Spring Boot 整合之模板引擎(jsp、Freemarker 、Thymeleaf )_第3张图片

 

 

 

你可能感兴趣的:(框架,Spring,Boot,整合)