Spring View Resolver返回404

时间:2016-06-17 18:48:31

标签: java spring jsp spring-mvc

为什么我遇到这个新项目的问题感到困惑。 只要确保Spring返回一个定义了jsp文件名称的字符串,Spring就会在特定目录中返回具有特定名称的jsp文件。

@Controller
public class TestController {

    @RequestMapping("/test")
    public String test2(HttpServletResponse response, HttpServletRequest request) {
        System.out.println("Returning test.jsp");
        return "test";
    }

}

视图解析器......

@Bean
public InternalResourceViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");
    return viewResolver;
}

在这种情况下,我希望domain.com/test上的控制器显示" src / main / webapp / WEB-INF / views / test.jsp"。这似乎在我所有的旧项目中运行良好,但在配置这个项目后,它不会合作,我不断收到404错误。

为什么它找不到要显示的正确jsp文件的任何想法?

编辑:问题已解决,解决方案已在下方发布。

2 个答案:

答案 0 :(得分:0)

您是否在弹簧配置中注册了控制器?(<context:component-scan .../>或{{1}})

答案 1 :(得分:0)

解决了这个问题。 正如所料,这是愚蠢的事情。

问题在于pom.xml中没有Apache Tomcat依赖项。 供将来参考:

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>