Java 使用springboot渲染thymeleaf时出现问题

Java 使用springboot渲染thymeleaf时出现问题,java,spring-mvc,spring-boot,Java,Spring Mvc,Spring Boot,大家好,我正在尝试运行一个简单的springboot应用程序。尝试查看基本html,但在呈现页面时遇到问题。我只能在浏览器上看到字符串,但看不到实际的html内容。请告诉我我做错了什么 TestController.java: @Controller public class TestController { @RequestMapping(value="/person") @ResponseBody public String intro(){ Sys

大家好,我正在尝试运行一个简单的springboot应用程序。尝试查看基本html,但在呈现页面时遇到问题。我只能在浏览器上看到字符串,但看不到实际的html内容。请告诉我我做错了什么

TestController.java:

@Controller
public class TestController {

    @RequestMapping(value="/person")
    @ResponseBody
    public String intro(){
        System.out.println("HH");
        return "index";
    }
}
MainApplication.java:

@SpringBootApplication
@ComponentScan(basePackages = "pathToMyControllerFolder")
public class MainApplication {

    public static void main(String[] args) {

            SpringApplication.run(MainApplication.class, args);
    }
}
在/rsesources/template文件夹中创建index.html,如spring文档中所述: index.html:

<!DOCTYPE html>
<head lang="en">

    <title>Spring Framework Guru</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h1>Hello</h1>

<h2>Fellow Spring Framework Gurus!!!</h2>
</body>
</html>

Spring框架大师
你好
各位Spring框架大师!!!
但是我不能与html内容竞争,而是与字符串索引竞争。早些时候出现了白页标签错误,并通过添加@ComponentScan修复了该错误,但现在只显示索引,而不显示实际的html内容

当我检查控制台上的日志信息时,我注意到:

2015-11-15 13:22:51.442  INFO 11460 --- [lication.main()] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2015-11-15 13:22:51.442  INFO 11460 --- [lication.main()] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
2015-11-15 13:22:51.442 INFO 11460-[lication.main()]s.w.s.m.m.a.RequestMappingHandlerMapping:将“{[/error]}”映射到public org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2015-11-15 13:22:51.442 INFO 11460-[lication.main()]s.w.s.m.a.RequestMappingHandlerMapping:将“{[/error],products=[text/html]}”映射到public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)

删除
@ResponseBody
注释。使用该注释,从控制器返回的任何内容都是响应主体。在本例中,返回
索引
字符串,这就是整个响应主体。删除注释将导致
索引
字符串被解释为视图名称。

非常感谢。那奏效了。。因此,如果要将一个变量传递给我的视图并使用html呈现它,我不应该使用@ResponseBody注释,而是使用model注释并返回需要呈现的视图,对吗?@EmyItegbe正确。您可以添加模型作为控制器方法的属性,并在其中添加一些内容。然后只返回视图名称,作为字符串:publicstringintro(modelmodel){Model.addAtribute(“attributeName”,“attributeValue”);返回“index”}