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

首先 增加依赖:

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

1)templates目录

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

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
Hello world!
</body>
</html>

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;
    }
    }

此时测试

localhost:8080/mvc1

成功跳转界面

FreeMarker详解

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

<!--加载静态文件模板第二种方法,freemarker,一定记得加devtools-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

1)这里写图片描述

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

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title>Insert title here</title>
</head>
<body>
请看说明:${descrip} <br />
</body>
</html>

2)TestController

@Controller
public class TestController {
    @RequestMapping("/demo")
    public String demo(Map<String, Object> map) {
        map.put("descrip", "It's a springboot integrate freemarker's demo!!!!");
        return "demo";
    }
}

3)浏览器测试

local:8080/demo

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

springboot整合jsp

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值