一、整合thymeleaf渲染首页
1.1. 引入依赖
1.2. 引入界面
在resources/static
中放静态资源,在resources/template
中放模板引擎,index和template模板都放到里面
1.3. 配置thymeleaf
-
关闭缓存
spring: thymeleaf: cache: false
-
配置文件目录前缀后缀
1.4. 新建web文件目录
新建web文件目录,将所有web相关controller都放到web目录下
将controller改为app
1.5. 总结
模板引擎
-
thymeleaf-starter:关闭缓存
-
静态资源都放在static文件夹下就可以按照路径直接访问
-
页面放在templates下,直接访问
SpringBoot,访问项目的时候,默认会找index
-
页面修改不重启服务器实时更新
- 引入dev-tools
- 修改完页面 controller shift f9重新自动编译下页面,代码配置,推荐重启
二、整合devtools渲染一级分类数据
2.1. 配置/和/index均可访问首页
@GetMapping({"/", "/index.html"})
public String indexPage(Model model) {
System.out.println("" + Thread.currentThread().getId());
//TODO 1、查出所有的1级分类
List<CategoryEntity> categoryEntities = categoryService.getLevel1Categorys();
// 视图解析器进行拼串:
// classpath:/templates/ +返回值+ .html
model.addAttribute("categorys", categoryEntities);
return "index";
}
2.2. 配置页面修改不重启服务器实时更新
-
引入devtools
-
修改完页面,使用
ctrl + shift + F9
重新自动编译下页面即可。代码配置的话,推荐重启
2.3. thymeleaf使用
2.3.1. 获取值
使用th:text绑定值
${category.name}
2.3.2. 绑定值
使用th:attr="属性=值"可以绑定值
th:attr="ctg-data=${category.catId}"
<a href="/static/#" class="header_main_left_a" th:attr="ctg-data=${category.catId}"><b th:text="${category.name}">家用电器</b></a>
每个a标签的值是category.name,同时有一个属性ctg-data为category.catId
三、渲染二级三级分类数据
编写获取二级、三级分类JSON接口
//index/catalog.json
@ResponseBody
@GetMapping("/index/catalog.json")
public Map<String, List<Catelog2Vo>> getCatalogJson() {
Map<String, List<Catelog2Vo>> catalogJson = categoryService.getCatalogJson();
return catalogJson;
}