前言
springboot在访问页面的时候会有自己的一个方法。初学者在访问的时候会经常遇到问题,因此我单独把springboot访问页面的事单独提出来小说一下。(本测试使用maven来统一管理jar包)。springboot访问页面的方法本身而言(比如注解,视图解析器等)和springmvc+spring是一模一样的。因此本篇主要讲的还是项目结构或者配置方面的问题
项目结构
下面列举一下我关于springboot最基本的测试项目结构,复杂的项目基本都是在这之上进行补充
- demo1页面直接放在static包之下
- demo2页面所放的位置为喜欢分类的程序员们喜欢放的位置,一般与此同级的还有css文件,js文件,images文件等静态资源。
- demo3页面可以类比我们曾经使用过放需要放在WEB-INF下进行加密限制jsp页面(springboot建议我们全部用.html页面并配置上thymeleaf模板来替代jsp页面),这种文件一般需要通过4的controller来进行跳转。
- demo3页面的controller,用来做跳转测试
相关配置
因为我们之前提到要用thymeleaf模板来写html,因此一定要添加相关jar包! 一定要添加相关jar包! 一定要添加相关jar包! 重要的事情说三遍,thymeleaf的maven依赖如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
如果不添加依赖,那么staitc下的页面尚可正确访问,但是templates里的页面则无法正确访问(一般情况下我遇到的会报404或者500)
开始测试
demo的测试页,三个页面不同就只是数字不同而已
demo1
springboot在8080后面的地址是直接对应的项目中resources文件中的static包下的文件
demo2
与demo1不同的地方就是在于地址栏需要将demo2所在的根目录加上
demo3
demo3的不同之处在于它不能通过地址栏直接寻找跳转,而是需要通过controller来访问
对应的controller(采用的为spring的注解来写的controller)
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/** * @author 无_言 * demo3.html的controller * */
@Controller
@RequestMapping("demo3")
public class demo3 {
@RequestMapping("/demo3")
public String demo3(){
return "demo3";//地址指向demo3.html
}
}