使用NetBeans 8.1。
我有这个简单的java Spring Boot项目,没有任何bean或持久性。 同一个包中的两个java类。
@SpringBootApplication
public class SpringSimpleTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringSimpleTestApplication.class, args);
}
}
@Controller
public class WebController {
@RequestMapping("/")
public String index(){
return "index";
}
}
" index.html" src / main / resources-> templates
下的文件<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Test</h1>
</body>
</html>
当我运行它时我没有错误但是当我去 http://localhost:8080/ 时,我有 Whitelabel错误页面:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Feb 09 01:53:26 CET 2017
There was an unexpected error (type=Not Found, status=404).
No message available
答案 0 :(得分:4)
首先,index.html
是静态资源,但它属于src/main/resources/static
,而不是src/main/resources/templates
。
其次,您不需要静态资源的请求映射。他们只是工作。
所以,移动index.html
,删除WebController
,它就可以了。
答案 1 :(得分:0)
您将html放在错误的目录中。这就是你得到这个错误的原因。
在Spring Boot项目中,默认目录存储html文件为src / main / webapp。但是,在这里很难与你展示。我在教程Spring Boot Maven Example Hello World with JSP
中找到了这个如果使用Thymeleaf创建Spring Boot项目,则默认目录正好是src / main / resources / templates。您可以参考帖子Spring Boot Thymeleaf Hello World Example
我只是用两种情况构建项目,它正常工作。希望这个帮助
答案 2 :(得分:0)
src / main / resources / templates 文件夹用于服务器端模板(例如,使用Thymeleaf,Mustache,...)。如果您收到404错误,则可能是您未在依赖项中提供任何template engine,例如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
另一个可能的原因是您的控制器没有被接收,因此请确保WebController
位于SpringSimpleTestApplication
的(子)包中(这是Spring引导用于扫描的默认包)组件)。
但是,如果您不需要服务器端模板并且只想提供静态 index.html 文件,则应将其放在 src / main / resources / public < / strong>或 src / main / resources / static 。在这种情况下,您也不需要控制器,因此您可以删除WebController
之类的LIMIT
。