2.1 搭建SpringBoot开发环境

2.1.1 搭建IDEA开发环境

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring boot


springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_02


Group:例如cn.com.fullstack,前面的com叫【域】,后面的是你自己起的域名。

Artifact:一般是项目名或者模块名

这两个相当于坐标如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring boot_03


springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_04


创建项目成功后

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_jsp页面_05


springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_06

2.2 开发SpringBoot项目-测试视图解析器

2.2.1 新增jsp和jstl的依赖

<!--引入解析jsp的依赖-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <scope>provided</scope>
        </dependency>

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_java_07

2.2.2 自定义视图前后缀

自定义配置文件有两种.properties和.yml,对齐格式不同,挑自己喜欢的就行
1.application.properties

#修改启动端口号
server.port=8080
#访问工程路径前缀localhost:8081/chapter2
server.servlet.context-path=/chapter2

#定义视图前缀
spring.mvc.view.prefix=/WEB-INF/jsp/
#访问文件后缀
spring.mvc.view.suffix=.jsp

2.application.yml
非常注意缩进格式

server:
  port: 8080
  servlet:
    context-path: /chapter2

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

2.2.3 创建webapp目录(注意不要多次创建)

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_java_08


springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_09


springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_intellij-idea_10


在jsp目录下新建jsp页面

<%--
  Created by IntelliJ IDEA.
  User: shi'nei'o'n
  Date: 2022/1/11
  Time: 22:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>第二章</title>
</head>
<body>
<h1>测试jsp页面,视图解析器</h1>
</body>
</html>

无法找到j(跳转)sp页面解决方案

2.2.3 开发控制器

启动类和控制器要放在同一包下,因为扫描位置默认同级目录和子目录

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_11

package com.springboot.chapter2;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

//控制层注解
@Controller
public class TestController {
    @RequestMapping("/test")
    @ResponseBody//加了这个就不是跳转jsp页面而是在页面打印Map对象
    public Map<String,String> test(){
        Map<String,String> map=new HashMap<>();
        map.put("key2","value");
        return map;
    }

    //访问localhost:8080/chapter2/index
    @RequestMapping("/idx")
    public String index(){
        return "index";//跳转到名字为index.jsp的页面文件
    }
}

如果输入路径后总会跳转到login页面,则需要在启动类中注解添加如下配置

//关闭spring自带的自动拦截器,不然会跳转到login页面
@SpringBootApplication//(exclude = {SecurityAutoConfiguration.class})

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring boot_12

运行截图

springboot无法解析多张图片斜杠的处理 springboot视图解析器配置_spring_13