首页 > 解决方案 > 找不到 Spring MVC 控制器 jsp 文件

问题描述

我正在为培训目的创建一个简单的演示网站。网络正确显示静态内容 index.html 但每当我尝试路由到/greeting url(由我的控制器指定)时,我都会收到 404 错误,如下所示

在此处输入图像描述

但是我的代码结构如下

在此处输入图像描述

并且配置了 applicaiton.properties 字段:

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

我的控制器也被定义:

package com.pluralsight.conference.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Map;

@Controller
public class GreetingController {
    @GetMapping("greeting")
    public String greeting(Map<String,Object> model) {
        model.put("message","Hello Jonel");
        return "greeting";
    }
}

我的 pom.xml 配置为战争,依赖项如下

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

</dependencies>

约内尔

标签: spring-bootspring-mvctomcatmodel-view-controller

解决方案


jsp用作您的视图解析器,您需要另一个用于 Spring Boot Starter Web 的嵌入式 servlet 容器。将以下内容添加到您的依赖项中pom.xml

<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
   <scope>provided</scope>
</dependency>

推荐阅读