zoukankan      html  css  js  c++  java
  • SpringBoot模板

    Thymeleaf模板

    相关pom依赖

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

    Spring Boot官方文档建议在开发时将缓存关闭,那就在application.properties文件中加入下面这行

    spring.thymeleaf.cache=false

    对应的后台代码

    package com.huang.springboot02.entity;
    
    import lombok.Data;
    
    /**
     * @auther 宇晨
     * @company
     * @create 2019-11-25-20:12
     */
    @Data
    public class User {
        private Integer uid;
        private String uname;
        private String pwd;
    
        public User() {
        }
    
        public User(Integer uid, String uname, String pwd) {
            this.uid = uid;
            this.uname = uname;
            this.pwd = pwd;
        }
    }
    package com.huang.springboot02.controller;
    
    import com.huang.springboot02.entity.User;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @auther 宇晨
     * @company
     * @create 2019-11-25-20:16
     */
    @Controller
    @RequestMapping("/thymeleaf")
    public class UserController {
    
        @RequestMapping("/list")
        public String hello(HttpServletRequest request){
    
            /**
             * 1、获取单个值
             * 2、能够在html页面进行遍历展示
             * 3、如何在html页面转义html代码块
             */
            request.setAttribute("msg","传输单个字符串!!!");
            List<User> userList = new ArrayList<>();
            userList.add(new User(1,"zs","123"));
            userList.add(new User(2,"ls","456"));
            userList.add(new User(3,"ww","789"));
            request.setAttribute("userList",userList);
            request.setAttribute("htmlStr","<span style='color:red' >转义html代码块<span>");
    
            return "list";
        }
    }

    前台HTML页面

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>thymeleaf模板知识点介绍</title>
    </head>
    <body>
    <div th:text="${msg}"></div>
    
    <table width="60%" border="1">
        <tr>
            <td>id</td>
            <td>用户名</td>
            <td>密码</td>
        </tr>
        <tr th:each="u : ${userList}">
            <td th:text="${u.uid}"></td>
            <td th:text="${u.uname}"></td>
            <td th:text="${u.pwd}"></td>
        </tr>
    </table>
    <table th:utext="${htmlStr}"></table>
    
    <!--<div th:include="common.html"></div>-->
    
    </body>
    </html>

    Freemarker模板

    导入pom依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
       </dependency>
    <!--可以不加,但是做项目的时候可能会用-->
     <resources>
                <!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题-->
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
                <!--freemarker模板也读取需要注释标红地方-->
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <!--<include>*.properties</include>-->
                        <!--<include>*.xml</include>-->
                        <!--<include>*.yml</include>-->
                    </includes>
                </resource>
            </resources>

    application.yml文件的默认配置

    spring:
      thymeleaf:
        cache: false
      freemarker:
        # 设置模板后缀名
        suffix: .ftl
        # 设置文档类型
        content-type: text/html
        # 设置页面编码格式
        charset: UTF-8
        # 设置页面缓存
        cache: false
        # 设置ftl文件路径,默认是/templates,为演示效果添加role
        template-loader-path: classpath:/templates/role
      mvc:
        static-path-pattern: /static/**

    list.ftl

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h2>取值</h2>
    <h3>提供默认值</h3>
    welcome 【${name}】 to freemarker!
    
    <h3>exists用在逻辑判断</h3>
    <#if name?exists>
        ${name}
    </#if>
    
    <h2>条件</h2>
    <#if sex=='girl'><#elseif sex=='boy'><#else>
            保密
    </#if>
    
    <h2>循环</h2>
    <table border="1px" width="600px">
        <thead>
        <tr>
            <td>ID</td>
            <td>角色名</td>
            <td>描述</td>
        </tr>
        </thead>
        <tbody>
        <#list roles as role>
        <tr>
            <td>${role.rid}</td>
            <td>${role.roleName}</td>
            <td>${role.desc}</td>
        </tr>
        </#list>
        </tbody>
    </table>
    
    <h2>include</h2>
    <#include 'foot.ftl'>
    
    <h2>局部变量(assign)/全局变量(global)</h2>
    <#assign ctx1>
        ${springMacroRequestContext.contextPath}
    </#assign>
    <#global ctx2>
        ${springMacroRequestContext.contextPath}
    </#global>
    sss
    ${ctx1}和${ctx2}
    sss
    </body>
    </html>

    common.ftl

    <div th:fragment="h1">
        第一部分内容
    </div>
    <div th:fragment="h2">
        第二部分内容
    </div>
    <div th:fragment="h3">
        第三部分内容
    </div>

    相关controler层的Java代码

    package com.huang.springboot02.controller;
    
    import com.huang.springboot02.entity.Role;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @auther 宇晨
     * @company
     * @create 2019-11-26-16:55
     */
    @Controller
    @RequestMapping("/freemarker")
    public class RoleController {
    
        @RequestMapping("/role/list")
        public ModelAndView roleList(){
            ModelAndView mav = new ModelAndView();
            mav.setViewName("/list");
    
            mav.addObject("name","ww");
            mav.addObject("sex","gay");
            List list = new ArrayList();
            list.add(new Role(1,"老师","教书育人"));
            list.add(new Role(2,"学生","知识改变命运"));
            mav.addObject("roles",list);
    
            return mav;
        }
    
        @RequestMapping("toLogin")
        public String toLogin(){
            return "login";
        }
    }

    测试结果:

     

     

     

     

  • 相关阅读:
    P1939 矩阵加速(数列)
    P3390 矩阵快速幂
    快速幂
    1236:区间合并
    1183:病人排队
    1230:寻找平面上的极大点
    1244:和为给定数
    1228 书架
    1222 放苹果
    洛谷5015标题统计
  • 原文地址:https://www.cnblogs.com/bf6rc9qu/p/11938245.html
Copyright © 2011-2022 走看看