我正在开发用于学习的spring boot应用程序。
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/views/");
resolver.setSuffix(".jsp");
registry.viewResolver(resolver);
}
我已经配置了上面给出的视图解析器。以下是页面
的API端点@RequestMapping(value = "/",method = RequestMethod.GET)
public ModelAndView homePage(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("index");
return modelAndView;
}
但是当我点击这个api时,我无法得到答复。我得到404
我在控制台上的错误是
No mapping found for HTTP request with URI [/WEB-INF/views/index.jsp] in DispatcherServlet with name 'dispatcherServle
我该如何解决这个问题?
答案 0 :(得分:1)
对于遇到此类问题的人们来说-Spring Boot文档指出here表示,在可嵌入servlet容器中运行时(即,在使用JAR封装时)不支持JSP。
使用WAR打包时,此处答案中给出的建议应该可行-但请检查最终的WAR中是否存在根目录:WEB-INF / views,以及您的JSP
答案 1 :(得分:0)
视图路径错误/WEB-INF/view/
而非/view/
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
registry.viewResolver(resolver);
}
或者您可以使用位于/resources/
的application.properties
并添加这些属性
spring.mvc.view.prefix: /WEB-INF/views/
spring.mvc.view.suffix: .jsp
重要: jsp视图应位于/resources/
目录