SpringBoot基础03:静态资源和首页定制
1.Java入门——介绍及安装2.Java基础01:注释、标识符、数据类型3.Java基础02:类型转换、变量、常量4.Java基础03:基本运算符5.Java基础04:包机制、JavaDoc生成文档6.Java流程控制01:Scanner对象7.Java流程控制02:顺序结构和选择结构8.Java流程控制03:循环结构9.Java方法10.Java数组01:数组的定义、声明、创建、初始化和内存分析11.Java数组02:数组使用、多维数组、冒泡排序和稀疏数组12.Java面向对象01:类与对象的关系、创建和初始化对象13.Java面向对象02:封装和继承14.Java面向对象03:抽象类、接口和内部类15.Java异常16.SpringBoot和微服务架构17.SpringBoot基础01:创建项目和编写HTTP接口18.SpringBoot基础02:自动装配原理、yaml语法和JSR-303数据校验
19.SpringBoot基础03:静态资源和首页定制
20.Java多线程01:什么是线程和线程的创建21.Java多线程02:静态代理模式和Lambda表达式22.Java多线程03:线程的五大状态23.Java多线程04:线程优先级、守护线程和线程同步24.Java多线程05:死锁、LOCK和线程协作25.网络编程基础01:网络编程概述、IP和端口26.网络编程基础02:TCP实现聊天和文件上传27.Java注解和反射01:注解28.Java注解和反射02:反射基本概述和获得Class类的几种方式29.Java注解和反射03:类加载30.Java注解和反射04:Class对象的使用SpringBoot基础03:静态资源和首页定制
静态资源
- 在SpringBoot中,可以使用一下方式处理静态资源
-
webjars
http://localhost:8080/webjars/
-
public,static,/**,resources
http://localhost:8080
- 优先级:resources>static(默认)>public
首页如何定制
-
导入模板引擎:在pom.xml中导入thymeleaf中添加相关启动器SpringBoot将自动配置相关依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
通过源码分析,默认在classpath:/templates/下寻找.html文件,因此在resources目录下的templates目录中创建相关.html文件就可以通过controller来访问相关页面了
@ConfigurationProperties(prefix = "spring.thymeleaf") public class ThymeleafProperties { private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8; public static final String DEFAULT_PREFIX = "classpath:/templates/"; public static final String DEFAULT_SUFFIX = ".html";
-
通过Controller类来传参,并在html页面中显示出来,前端界面获取后端元素 th:元素名的方式来进行替换
package com.lurenj.controller; import org.springframework.ui.Model; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; //在templates目录下的所有页面,只能通过controller来跳转 //需要模板引擎的支持! thymeleaf @Controller public class IndexController { @RequestMapping("/test") public String test(Model model){ model.addAttribute("msg","springboot"); return "test"; } }
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--所有的html元素都可以被thymeleaf替换接管: th:元素名--> <h1 th:text="${msg}"></h1> </body> </html>
-
自定义视图解析器,在主程序同级目录下创建config文件夹,在其中建立自定义类,通过ViewResolver接口实现自定义试图解析器,并加入到容器中
package com.lurenj.config; //全面扩展 springMVC import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.View; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.Locale; @Configuration public class MyMvcConfig implements WebMvcConfigurer { //public interface ViewResolver 实现了视图解析器接口的类,我们就可以把它看做视图解析器
@Bean public ViewResolver myViewResolver(){ return new MyViewResolver(); } //自定义一个自己的视图解析器MyViewResolver public static class MyViewResolver implements ViewResolver{ @Override public View resolveViewName(String viewName, Locale locale) throws Exception { return null; } }
}
-
扩展SpringMvc
package com.lurenj.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; //如果我们要扩展springMVC,官方建议的做法如下! @Configuration public class MyMvcConfig implements WebMvcConfigurer { //视图跳转 @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/lurenj").setViewName("test"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通