前言

springboot在访问页面的时候会有自己的一个方法。初学者在访问的时候会经常遇到问题,因此我单独把springboot访问页面的事单独提出来小说一下。(本测试使用maven来统一管理jar包)。springboot访问页面的方法本身而言(比如注解,视图解析器等)和springmvc+spring是一模一样的。因此本篇主要讲的还是项目结构或者配置方面的问题

项目结构

下面列举一下我关于springboot最基本的测试项目结构,复杂的项目基本都是在这之上进行补充

springboot 桌面程序 springboot页面放在哪_spring-boot

  1. demo1页面直接放在static包之下
  2. demo2页面所放的位置为喜欢分类的程序员们喜欢放的位置,一般与此同级的还有css文件,js文件,images文件等静态资源。
  3. demo3页面可以类比我们曾经使用过放需要放在WEB-INF下进行加密限制jsp页面(springboot建议我们全部用.html页面并配置上thymeleaf模板来替代jsp页面),这种文件一般需要通过4的controller来进行跳转。
  4. 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的测试页,三个页面不同就只是数字不同而已

springboot 桌面程序 springboot页面放在哪_springboot 桌面程序_02

demo1

springboot在8080后面的地址是直接对应的项目中resources文件中的static包下的文件

springboot 桌面程序 springboot页面放在哪_jar包_03

demo2

与demo1不同的地方就是在于地址栏需要将demo2所在的根目录加上

springboot 桌面程序 springboot页面放在哪_spring-boot_04

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
    }

}

springboot 桌面程序 springboot页面放在哪_jar包_05