栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Thymeleaf简单的模板和运行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Thymeleaf简单的模板和运行

Thymeleaf 是⼀种类似于 JSP 的动态⽹⻚技术 1. Thymeleaf简介

JSP 必须依赖Tomcat运⾏,不能直接运⾏在浏览器中

HTML可以直接运⾏在浏览器中,但是不能接收控制器传递的数据

Thymeleaf是⼀种既保留了HTML的后缀能够直接在浏览器运⾏的能⼒、⼜实现了JSP显示动态数据的功能——静能查看⻚⾯效果、动则可以显示数据

2. Thymeleaf应用 2.1 添加thymelea的starter

在springboot不需要指定版本,内置有版本


            org.springframework.boot
            spring-boot-starter-thymeleaf
        
2.2 创建thymelea模板 Thymeleaf 模板就是 HTML ⽂件 SpringBoot 应⽤中 resourcestemplates ⽬录就是⽤来存放⻚⾯模板的 2.2.1重要说明:

static ⽬录下的资源被定义静态资源, SpringBoot 应⽤默认放⾏;如果将 HTML ⻚⾯创建 static ⽬录是可以 直接访问的 templates ⽬录下的⽂件会被定义为动态⽹⻚模板, SpringBoot 应⽤会拦截 templates 中定义的资源;如果将 HTML⽂件定义在 templates ⽬录,则必须通过控制器跳转访问。 在 templates 创建 HTML ⻚⾯模板 创建 PageController ,⽤于转发允许 " 直接访问 " 的⻚⾯请求 2.2.2简单应用:
@Controller
@RequestMapping("/book")
public class BookController {

    @RequestMapping("/query")
    public String queryBook(int bookId, Model model){
        Book book = new Book(bookId, "java", "亮哥");
        model.addAttribute("book",book);
        return "test";
    }
}

 test.html



    
        
        Title
    
    
        test
        

在浏览器中输入:

http://localhost:8080/book/query?bookId=1
3 Thymeleaf基本语法 如果要在 thymeleaf 模板中获取从控制传递的数据,需要使⽤ th 标签 3.1 在thymeleaf模板⻚⾯引⼊th标签的命名空间


    
        
        Title
    
    
        test
        
3.2 th:text 在⼏乎所有的 HTML 双标签都可以使⽤ th:text 属性,将接收到的数据显示在标签的内容中
@Controller
@RequestMapping("/book")
public class BookController {

    @RequestMapping("/query")
    public String queryBook(int bookId, Model model){
        Book book = new Book(bookId, "java", "亮哥");

        List books = new ArrayList<>();
        books.add(new Book(1,"java","亮哥1"));
        books.add(new Book(2,"html","亮哥2"));
        books.add(new Book(3,"c++","亮哥3"));
        books.add(new Book(4,"python","亮哥4"));

        //简单类型
        model.addAttribute("price",3.22);

        //字符串
        model.addAttribute("str","Long Long ago...");

        //对象
        model.addAttribute("book",book);

        //集合
        model.addAttribute("books",books);

        return "test";
    }
}


    
        
        Title
    
    

        价格: 
字符串:

图书名称:

3.3 th:inline 内联 3.3.1 HTML 内联

图书名称:[[${book.bookName}]]

3.3.2 CSS内联
model.addAttribute("color","orange");


    
        
        Title
        
    
    

        价格: 
字符串:

图书名称:[[${book.bookName}]]

重启刷新:变色成功

3.3.3 javaAcript内联

和css内联差不多 

3.3.4 th:object 和 *

外层有th:object 内层就可以用*代表上层对象

 

4. 流程控制

4.1 th:each 循环

图书信息列表
图书ID 图书名称 图书作者
4.2 分支 4.2.1 th:if 如果条件不成立,则不显示此标签
太贵!!!
推荐购买
4.2.2 th:switch 和 th:case

                        
                        
                        
                    

 
 
 
5. 碎片使用 5.1 碎片的概念 碎⽚,就是 HTML ⽚段,我们可以将多个⻚⾯中使⽤的相同的 HTML 标签部分单独定义,然后通过 th:include 可以在HTML ⽹⻚中引⼊定义的碎⽚  5.2 碎片使用案例 5.2.1 定义碎片 th:fragment

header.html




    
    Title




    头部测试,(~ ̄▽ ̄)~666!!


footer.html




    
    Title




    尾部测试,(~ ̄▽ ̄)~666!!



5.2.2 引用碎片 th:include和th:replace

a.html




    
    Title



    

    
        定义内容
    

    


 




    
    Title




    

    
        定义内容
    

    
    


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号