Spring Boot viewResolver不工作 - 不映射到给定位置

时间:2017-11-24 16:45:55

标签: java spring-mvc spring-boot

enter image description here

我正在开发用于学习的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

我该如何解决这个问题?

2 个答案:

答案 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/目录