ThymeLeaf实战


一、导入依赖

在pom.xml中添加相关依赖:

<!--整合thymeleaf-->
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
</dependency>

<!-- thymeleaf整合springsecurity5的标签库 -->
<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>

二、配置Theamleaf解析引擎

public class SpringMvcConfig implements WebMvcConfigurer {

    //添加资源处理程序
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/images/**").addResourceLocations("/images/");
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
        registry.addResourceHandler("/lib/**").addResourceLocations("/lib/");
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
    }

    //开启视图解析器
    @Bean
    public SpringResourceTemplateResolver springResourceTemplateResolver() {
        SpringResourceTemplateResolver srtr = new SpringResourceTemplateResolver();
        //设置前后缀
        srtr.setPrefix("/pages/");
        srtr.setSuffix(".html");
        //解决页面的中文乱码
        srtr.setCharacterEncoding("UTF-8");
        srtr.setOrder(1);
        srtr.setTemplateMode("HTML5");
        srtr.setCacheable(false);
        return srtr;
    }

    @Bean
    public SpringSecurityDialect springSecurityDialect() {
        return new SpringSecurityDialect();
    }

    @Bean
    public SpringTemplateEngine springTemplateEngine(SpringResourceTemplateResolver springResourceTemplateResolver, SpringSecurityDialect springSecurityDialect) {
        SpringTemplateEngine ste = new SpringTemplateEngine();
        ste.setTemplateResolver(springResourceTemplateResolver);
        Set set = new HashSet();
        set.add(springSecurityDialect);
        ste.setAdditionalDialects(set);
        return ste;
    }

    //配置thymeleaf视图解析器
    @Bean
    public ThymeleafViewResolver thymeleafViewResolver(SpringTemplateEngine springTemplateEngine) {
        ThymeleafViewResolver tvr = new ThymeleafViewResolver();
        tvr.setTemplateEngine(springTemplateEngine);
        tvr.setCharacterEncoding("UTF-8");
        return tvr;
    }
}

三、后端设计

后端使用addAttribute方法向前端传递数据。

model.addAttribute("bookList",bookList);

具体代码如下:

    @GetMapping("/books")
    public String getAll(@RequestParam(required = false) String name, Model model) {
        System.out.println(name);
        List<Book> bookList = bookService.getAll(name);
        System.out.println(bookList);
        model.addAttribute("bookList",bookList);
        return "main";
    }

四、使用TheamLeaf渲染数据

在HTML头部标签中添加xlms属性,如下代码所示:

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<tr  th:each="book : ${bookList}">
						<td bgcolor="#FFFFFF" style='border-bottom: 1px dotted #eeeeee;' th:text="${book.id}"></td>
						<td bgcolor="#FFFFFF" style='border-bottom: 1px dotted #eeeeee;' th:text="${book.type}"></td>
						<td bgcolor="#FFFFFF" style='border-bottom: 1px dotted #eeeeee;' th:text="${book.name}">></td>
						<td bgcolor="#FFFFFF" style='border-bottom: 1px dotted #eeeeee;' th:text="${book.description}"></td>
						<td bgcolor="#FFFFFF" style='border-bottom: 1px dotted #eeeeee;'>
							<a th:href="@{/books/id(id=${book.id})}" >
								修改</a>
							&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;
							<a th:attr="href=@{/delete/id(id=${book.id})}">
								删除</a>
						</td>
</tr>

前端使用${bookList}即可访问到后端传递的数据

th:each 是遍历的意思,会将bookList中的数据遍历出来,类似vue中的v-for


总结

以上是自己学习Theamleaf的记录,希望自己在以后的学习生活中每天开开心心!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要生成Thymeleaf弹出框,你可以使用Thymeleaf的模板片段和JavaScript。首先,你需要在你的Thymeleaf模板中创建一个包含弹出框内容的div元素,并给它一个唯一的id。然后,你可以使用JavaScript来控制弹出框的显示和隐藏。以下是一种可能的实现方法: 1. 在你的头部模板中,添加一个包含弹出框样式和JavaScript代码的标签。你可以在这个标签中定义弹出框的样式和动画效果。 2. 在你的底部模板中,添加一个按钮或链接,用于触发弹出框的显示。你可以使用Thymeleaf的链接或按钮标签,并将其与JavaScript代码关联起来。 3. 创建一个Thymeleaf模板片段来定义弹出框的内容。你可以在这个模板片段中添加表单、文本或任何其他你想要显示在弹出框中的内容。 4. 在你的JavaScript代码中,监听按钮或链接的点击事件,并在点击时显示弹出框。你可以使用JavaScript的事件监听器和DOM操作方法来实现这个功能。 5. 当用户操作完弹出框中的内容后,你可以使用JavaScript来隐藏弹出框。你可以通过修改弹出框的样式或添加CSS类来实现这一点。 这是一个基本的实现方法,你可以根据你的具体需求进行修改和扩展。记得在Thymeleaf模板中正确引用你的头部和底部模板,以及模板片段。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【SpringBoot框架篇】2.Thymeleaf模板引擎实战](https://blog.csdn.net/ming19951224/article/details/106160322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值