我使用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视图为空。
有人可以帮忙吗?
答案 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
我还没有找到覆盖模板路径和文件扩展名的确切方法,而让应用程序仍然认为它是胡须模板。因此,它将在返回之前进行编译。