这是我的Controller类
@Controller
public class PageController {
@GetMapping(value="/")
public String homePage() {
return "index";
}
}
我还有一个RestController类
@RestController
public class MyRestController {
@Autowired
private AddPostService addPostService;
@PostMapping("/addpost")
public boolean processBlogPost(@RequestBody BlogPost blogPost)
{
blogPost.setCreatedDate(new java.util.Date());
addPostService.insertBlogPost(blogPost);
return true;
}
}
我已经在Spring Application类的@ComponentScan
中包含了所有必需的软件包。
我尝试将index.html
页同时放在src/main/resources/static
和src/main/resources/templates
中。但是当我加载localhost:8080
时,它会显示Whitelabel error page
。
在调试时,控件实际上是到达 return "index";
,但页面未显示。
答案 0 :(得分:0)
一种正确的行为是在配置中注册视图并将其保留在src/main/resources/templates/index.html
下:
@Configuration
public class MvcConfig implements WebMvcConfigurer {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
}
答案 1 :(得分:0)
默认视图解析器将查找名为资源的文件夹(静态和公共)。
因此,将index.html放在/resources/resources/index.html或/resources/static/index.html或/resources/public/index.html
您还需要返回文件和扩展名的完整路径
@Controller
public class PageController {
@GetMapping(value="/")
public String homePage() {
return "/index.html";
}
}
这将使您的html页面公开可用(例如http://localhost:8080/index.html将提供该页面)。如果这不是您想要的,那么您需要查看定义视图解析器。