Spring Boot 页面跳转视图解析Thymeleaf和FreeMarker详解

最近看的springboot 在网上看到了很多教程,跳转有很多方法,在这里,我记录了三种,供大家参考

spring boot 在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配置的模版引擎,如下: 
1. FreeMarker 
2. Groovy 
3. Thymeleaf 
4. Velocity (deprecated in 1.4) 
6. Mustache

JSP技术spring boot 官方是不推荐的,原因有三: 
1. 在tomcat上,jsp不能在嵌套的tomcat容器解析即不能在打包成可执行的jar的情况下解析 
2. Jetty 嵌套的容器不支持jsp 
3. Undertow

spring Boot加载html默认到resources/templates里寻找:

Thymeleaf

首先 增加依赖:

    
            org.springframework.boot
            spring-boot-starter-thymeleaf
    
  • 1
  • 2
  • 3
  • 4

1)Spring Boot 页面跳转视图解析Thymeleaf和FreeMarker详解_第1张图片

如 index.html. 
需要注意的是:自动生成的html, 是不全的,注意区分。




    
    Title


Hello world!

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Controller进行跳转,

提供了两种方式,1)是直接返回字符串,字符串为html的名字,视图会自动解析。 
2)是利用ModelAndView,如图:

@Controller
public class TestController {
    @RequestMapping("/mvc1")
    public String mvc1(){
    return "index";
    }
    @RequestMapping("/mvc2")
    @ResponseBody
    public ModelAndView mvc2(){
        ModelAndView mv = new ModelAndView("index");
        return mv;
    }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

此时测试

localhost:8080/mvc1
  • 1

成功跳转界面

FreeMarker详解

首先,增加依赖,freemarker和devtools必须有,还有web,这个自动就有,如果没有记得加上


        
            org.springframework.boot
            spring-boot-starter-freemarker
        
        
            org.springframework.boot
            spring-boot-devtools
            true
        
        
            org.springframework.boot
            spring-boot-starter-web
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1)Spring Boot 页面跳转视图解析Thymeleaf和FreeMarker详解_第2张图片

在这里首先是demo.ftl 
一定注意是ftl结尾。




    
    Insert title here


请看说明:${descrip} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2)TestController

@Controller
public class TestController {
    @RequestMapping("/demo")
    public String demo(Map map) {
        map.put("descrip", "It's a springboot integrate freemarker's demo!!!!");
        return "demo";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3)浏览器测试

local:8080/demo
  • 1

完美成功。当然 还有最重要的jsp。不推荐用

你可能感兴趣的:(springboot)