1.设置首页路由问题
- 首页的静态资源我们已经导入了,所以直接去配置controller
- 编写controller跳转视图/开发网页接口
package com.thhh.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class IndexController { @RequestMapping({"/","/index","/index.html"}) public String index(){ return "index"; } }
- 测试
- 但是我们一般不会创建一个controller去专门配置首页跳转,我们一般通过定义一个xxxconfig,然后通过addViewControllers()设置首页跳转(
这样做可以少写一个controller,并且这个xxxconfig中可以写上其他扩展springMVC的功能),这样隐藏了我们首页的真实请求地址,更加安全@Configuration @EnableWebMvc public class MyMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/test").setViewName("/index"); } }
2.解决静态资源css、js、img加载不进来的问题
- 因为我们把页面都放在了文件夹templates下面,所以要获取到页面我们需要使用到thymeleaf引擎,所以我们的视图层的数据要使用thymeleaf表达式来取值,所以所有导入的静态资源需要进行thymeleaf属性改造
- 首先在静态页面上加入thymeleaf的约束
xmlns:th="http://www.thymeleaf.org"
- 将所有需要导入资源/解析数据的标签的属性修改为thymeleaf接管的格式 —— th:属性名称=“对应数据的取值表达式”
- 超链接:连接URL表达式 Link URL Expressions: @{…}
- 超链接:连接URL表达式 Link URL Expressions: @{…}
- 按照首页的修改步骤,去对其他的视图模板进行thymeleaf的修改
- 404页面(注意:我们要修改的只有本地的url,远程的url不要修改)
3.注意点
- 所有页面上需要获取后台数据的属性的位置都需要设为thymeleaf接管
- 在线的url不用修改
- 如果修改的是url属性,则th表达式为”@{…}“