• 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。不推荐用

    原文:https://blog.csdn.net/qq_37355731/article/details/77049804

  • 相关阅读:
    判断一棵二叉树是否为二叉搜索树
    分离链接法的删除操作函数
    线性探测法的查找函数
    Bzoj1251 序列终结者
    POJ2396 Budget
    Bzoj3531: [Sdoi2014]旅行
    Codeforces Round #389 Div.2 E. Santa Claus and Tangerines
    Codeforces Round #389 Div.2 D. Santa Claus and a Palindrome
    Codeforces Round #389 Div.2 C. Santa Claus and Robot
    Codeforces Round #389 Div.2 B. Santa Claus and Keyboard Check
  • 原文地址:https://www.cnblogs.com/G-yong/p/10276078.html
Copyright © 2020-2023  润新知