SpringBoot-控制器和RequestMapping始终返回404

问题描述 投票:0回答:1

我正在尝试示例here的简化版本。该项目是通过VSCode使用Springboot扩展随附的初始化程序进行设置的。

DemoApplication.java

package com.sample.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

CalculatorController.java

package com.sample.demo;

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

@Controller
public class CalculatorController {

    @RequestMapping("/")
    public String index() {
        return "index";
    }
}

我正在从VSCode运行应用程序,并以http://localhost:8080/身份访问它。我不断收到404错误。当我将@Controller注释更改为@RestController注释时,它可以工作。此外,存在resources\templates\index.html

我想念什么?

java spring rest maven spring-boot
1个回答
0
投票

上下文是对Spring MVC的高度概述,它是使用Front Controller设计模式设计的,其中Dispatcher servlet将接收所有请求并调用相应的处理程序,以便在对控制器类进行注释时调用controller方法。@Controller注释调度程序servlet考虑到该返回值,并尝试在MVC中定位View,以便在需要使用相应视图位置配置InternalResourceViewResolver和Themeleaf的情况下,需要配置ViewResolver的任何一种实现。

如果您的控制器带有@RestController注释,则处理程序的返回值将被视为Http响应Dispatcher servlet不会显示任何视图(它将返回值视为http响应主体)

您可以使用@Controller注释本身实现相同的功能,只需在处理程序方法中添加此注释@ResponseBody(返回值视为http响应)。

© www.soinside.com 2019 - 2024. All rights reserved.