鉴于调试器命中了我在控制器中设置的断点,因此Spring Boot返回404。我该如何解决?

时间:2018-12-18 07:22:53

标签: java spring web-services spring-boot

我使用IntelliJ通过Spring boot创建了一个Web应用程序,该应用程序使用Mustache和Gradle在Tomcat上运行。

我的TestController.java和TestApplication.java位于同一软件包(com.example.test)中。

这是TestApplicaiton.java

@SpringBootApplication
public class TestApplication {

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

}

这是TestController:

@Controller
public class TestController {
    @GetMapping(value = "/")
    public ModelAndView index(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        return new ModelAndView("index");
    }
}

我将index.html放在/resources/static/resources/templates下。仍然,页面显示

  

找不到404(“白色标签错误”页)。

如果我将@controller批注更改为@RestController并将返回类型更改为String,它将正确返回该字符串。

因此,解决视图时似乎出了点问题。但是,它不会引发异常。当我进入代码时,我注意到mvContainer视图为空。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我认为您需要配置ViewResolver才能按名称解析视图。 这是一个指南:https://www.baeldung.com/spring-mvc-view-resolver-tutorial

答案 1 :(得分:0)

对我来说,我终于发现我应该将文件扩展名重命名为.mustache而不是使用.html。这将适用于开箱即用的配置。这是我在网上找到的示例代码: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-mustache

我还没有找到覆盖模板路径和文件扩展名的确切方法,而让应用程序仍然认为它是胡须模板。因此,它将在返回之前进行编译。