2017-04-06 100 views
3

我使用的是春天啓動1.5.2和我的彈簧安置控制器彈簧安置控制器看起來像這樣沒有返回HTML

@RestController 
@RequestMapping("/") 
public class HomeController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String index() { 
     return "index"; 
    } 

} 

當我去http://localhost:8090/assessment/到達我的控制器,但不回我的索引。 html,它位於src/main/resources或src/main/resources/static下的Maven項目中。如果我轉到此網址http://localhost:8090/assessment/index.html,它會返回我的index.html。我看了這篇教程https://spring.io/guides/gs/serving-web-content/,他們使用百里香。我是否必須使用百里香或類似的東西來讓我的彈簧控制器恢復我的視野?

我的應用程序類看起來像這樣

@SpringBootApplication 
@ComponentScan(basePackages={"com.pkg.*"}) 
public class Application { 

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

當我添加到我的類路徑中thymeleaf依賴我得到這個錯誤(500響應代碼)

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers 

我想我需要thymeleaf?我現在要嘗試正確配置它。

它可以改變我的控制器方法後返回的index.html像這樣

@RequestMapping(method=RequestMethod.GET) 
     public String index() { 
      return "index.html"; 
     } 

我覺得thymeleaf或軟件,如它可以讓你不用輸入這些文件的擴展名,不知道雖然。

+2

對於初學者來說,讓它成爲['Controller'](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html)而不是' RestController' –

+0

現在它仍然到達控制器,但是我得到了一個404,無論index.html是在src/main/resources還是在src/main/resources/static中。 http:// localhost:8090/assessment/index.html仍然有效 – gary69

回答

2

你的例子是這樣的:

你的控制器的方法與你的路線 「評估」

@Controller 
public class HomeController { 

    @RequestMapping(value = "/assessment", method = RequestMethod.GET) 
    public String index() { 
     return "index"; 
    } 

} 

在你Thymeleaf模板 「的src /主/資源/模板/ index.html的」

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <p>Hello World!</p> 
</body> 
</html> 
9

RestController批註從方法而不是HTML或JSP返回json。它是一個@Controller和@ResponseBody的組合。 @RestController的主要目的是創建RESTful Web服務。對於返回html或jsp,只需使用@Controller註釋控制器類即可。

+0

我已將其更改爲@Controller,現在我得到了404,但請求映射仍在工作。我是否需要添加視圖解析器bean? http:// localhost:8090/assessment/index.html仍然有效 – gary69

+0

網址http:// localhost:8090/assessment/working? –

+0

沒有什麼是什麼給了我404 – gary69