当前位置: 首页 > news >正文

phymeleaf 除取整_【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h...

总结

- thymeleaf的模板解析规则不清楚,或者忘了;

- 出现bug时,瞎调试, 没有打开NETWORK 进行查看资源的加载情况

- 控制器中的其他代码,可以先注释掉,这样就可以迅速屏蔽掉其他代码的影响.

- thymeleaf重写href超链接的时候, 注意格式: href="asserts/css/bootstrap.min.css" th:href="@{/asserts/css/dashboard.css}" ,asserts前加上'/';

- 在js脚本中src也需要进行thymeleaf重写, src="asserts/js/Chart.min.js" th:src="@{/asserts/js/Chart.min.js};

问题描述

通过路径1跳转,正常加载

7da9e8105934731ab8cb28f4418e59dc.png

通过路径2跳转,加载失败 莫名其妙地多出现了emp路径 ,并且页面的样式全无

e05a24ffe110f10b0948ca6ffd7a2bf6.png

springboot控制器的写法

//4.来到修改页面,查出当前员工,在页面回显,进而修改员工信息页面

@GetMapping("/emp/{id}")

public String toEditPage(@PathVariable Integer id,Model model){

Employee employee = employeeDao.get(id);

System.out.println(employee);

model.addAttribute("emp",employee);

//页面要显示所有的部门列表

Collection departments = departmentDao.getDepartments();

model.addAttribute("depts",departments);

System.out.println(departments);

//回到修改页面,add.html 是一个修改添加二合一的页面

return "/emp/add.html";

}

找到上面的图中的 Bootstrap core JavaScript 等 静态资源的所在位置

/* Chart.js */

问题分析

- thymeleaf有动态模板渲染的功能, 没有使用thymeleaf将静态资源的位置进行重写;

- 控制器没问题,不用瞎改半天;

- ```js

只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染;

public static final String DEFAULT_PREFIX = "classpath:/templates/";

public static final String DEFAULT_SUFFIX = ".html";

**同样的,如果加了html/css等后缀,thymeleaf就不再渲染,不在"classpath:/templates/"文件夹里的,也是不进行渲染的.**

```

- **因此,如上代码需要进行按照thymeleaf的语法进行再次引用重写, 可保证路径的引用正确**

代码重写

订正后效果

1dc02c97149bcfb564475ebfbf65414e.png

相关文章:

  • python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降
  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • java开发微信设计论文_集客微信公众号: 本科毕业设计:基于WxJava框架的集客微信公众号的设计与实现...
  • java 判断是不是英文怎么说_java判断一个字符串是中文还是英文
  • linux+mysql运算符_MySQL 运算符
  • saxreader java_SAXReader saxReader = new SAXReader();来解析xml文件
  • 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  • JAVA循环读取菜单_java循环菜单
  • mysql一条sql的执行过程_【MySQL深入】一条SQL的执行过程
  • java高级编程英语单词_Java高级编程
  • 强对象 java_java对象的强引用,软引用,弱引用和虚引用
  • grafana mysql插件_grafana插件动态数据
  • java runtime api_java runtime 入门
  • java中capitals_Java程序按值对映射进行排序
  • ➹使用webpack配置多页面应用(MPA)
  • leetcode388. Longest Absolute File Path
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • magento2项目上线注意事项
  • QQ浏览器x5内核的兼容性问题
  • select2 取值 遍历 设置默认值
  • vue总结
  • Web标准制定过程
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从零搭建Koa2 Server
  • 高性能JavaScript阅读简记(三)
  • 我有几个粽子,和一个故事
  • raise 与 raise ... from 的区别
  • 阿里云服务器购买完整流程
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (12)Linux 常见的三种进程状态
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (论文阅读40-45)图像描述1
  • (十)T检验-第一部分
  • (实战篇)如何缓存数据
  • (算法)N皇后问题
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .gitignore文件---让git自动忽略指定文件
  • .Net Winform开发笔记(一)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 药厂业务系统 CPU爆高分析
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • ::前边啥也没有
  • @NestedConfigurationProperty 注解用法
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20170705]lsnrctl status LISTENER_SCAN1