为什么我遇到这个新项目的问题感到困惑。 只要确保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文件的任何想法?
编辑:问题已解决,解决方案已在下方发布。
答案 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>