我在Eclipse中运行Tomcat 8上的Spring(4)MVC servlet。当我启动tomcat时,控制台中没有错误,并且记录了我的控制器的所有正确请求映射。如果我尝试访问localhost:8080/app/login
我的控制器方法执行(通过调试检查),但我得到一个404页面,其中包含以下内容:
消息/app/WEB-INF/jsp/login.jsp
说明请求的资源不可用。
我的项目具有以下目录结构:
project-root
|-src
|-WebContent
|-WEB-INF
|-jsp
|-login.jsp
我的配置类:
@EnableWebMvc
@Configuration
@ComponentScan(basePackages = "com.example")
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureViewResolvers(final ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/jsp/", ".jsp").viewClass(JstlView.class);
}
//Other stuff
}
控制器:
@Controller
@RequestMapping("/login")
public class AuthnRequestController {
@RequestMapping(value = "", method = RequestMethod.GET)
public ModelAndView getLoginPage() {
return new ModelAndView("login");
}
//Other stuff
}
应用程序在过去工作得很好,但我正在调整我的工作空间/项目正在处理其他事情,而现在我又回到了它,我无法再次工作。
答案 0 :(得分:1)
AFAIK,默认情况下,在maven war项目中,jsp文件应位于/src/main/resources/
下。由于您在配置中提供了/WEB-INF/jsp/
的jsp文件前缀,请尝试将jsp文件移动到以下位置。
/src/main/webapp/WEB-INF/jsp/
假设:
Web部署程序集中未提供到root/WebContent
的映射。
Web部署程序集中存在到/src/main/webapp
的映射。
maven war plugin