Spring不提供html文件

时间:2015-02-25 12:33:45

标签: java html spring spring-mvc

所以我试图按照本指南关于如何使用Spring提供html文件: http://spring.io/guides/gs/serving-web-content/

我有完全相同的文件夹结构和完全相同的文件但是当我运行spring boot服务器时,我的localhost:8080/greeting将只显示从greeting返回的字符串GreetingController和这就是它,如果我查看页面源代码,其中没有html。

我找不到任何相关的答案,因为所有类似的答案仍然使用.xml文件驱动的Spring,您在.xml文件中声明视图。但是本指南明确指出不需要使用.xml。它应该就是这样。

映射:

@RestController
public class GreetingController {

    @RequestMapping("/greeting")
    public String greeting(@RequestParam(value="name", required = false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }
}

使用@Controller抛出错误:

2015-02-25 14:50:14.830 ERROR 2378 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause

javax.servlet.ServletException: Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

编辑:

解决方案: a)使用@Controller代替@RestController b)在IntelliJ中启动应用程序时,请确保创建在执行Main类之前运行的Gradle任务。

2 个答案:

答案 0 :(得分:6)

您使用@RestControllerdocumentation)代替@Controller

  

便利注释本身用@Controller和@ResponseBody注释。

@ResponseBody只返回调用者,无论方法返回什么,在你的情况下都是字符串greeting

对于您获得的循环视图路径异常,它可能与ViewResolver s有关。从春季启动文档

  

有很多ViewResolver的实现可供选择,而Spring本身并不认为你应该使用哪些。另一方面,Spring Boot会根据在类路径和应用程序上下文中找到的内容为您安装一个或两个

因此,依赖项中可能缺少某些内容。您是否配置了spring-boot-starter-thymeleaf依赖项?

答案 1 :(得分:4)

您是否在pom.xml中添加了以下依赖项?

{
    for(i=0;i<=length($0)-5;i++){
        a[substr($0,i,5)]++
    }
}
END {
    for(i in a) {
        if(a[i]>=a[m] || !m) {
            m=i
        }
    }
    print m
}