Java 404在SpringServlet中解析视图
我在Eclipse中的Tomcat8上运行了一个Spring(4)MVCServlet。当我启动tomcat时,控制台中没有错误,并且记录了控制器的所有正确请求映射。如果我尝试访问Java 404在SpringServlet中解析视图,java,spring,spring-mvc,servlets,Java,Spring,Spring Mvc,Servlets,我在Eclipse中的Tomcat8上运行了一个Spring(4)MVCServlet。当我启动tomcat时,控制台中没有错误,并且记录了控制器的所有正确请求映射。如果我尝试访问localhost:8080/app/login,我的控制器方法将执行(通过调试进行检查),但我会得到一个404页面,其中包含以下内容: message/app/WEB-INF/jsp/login.jsp 说明请求的资源不可用 我的项目具有以下目录结构: project-root |-src |-WebConten
localhost:8080/app/login
,我的控制器方法将执行(通过调试进行检查),但我会得到一个404页面,其中包含以下内容:
message/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
}
该应用程序在过去运行得很好,但我在工作区/项目上做了一些其他的事情,现在我又回到了它,无法让它再次工作。AFAIK,默认情况下,在maven war项目中,jsp文件应该在
/src/main/resources/
下。由于您在配置中提供了jsp文件前缀/WEB-INF/jsp/
,请尝试将jsp文件移动到以下位置
/src/main/webapp/WEB-INF/jsp/
假设:
- Web部署程序集中未提供到
的映射根/WebContent
- Web部署程序集中存在到
的映射/src/main/webapp
- 您的eclipse正在使用
maven-war插件
/src/main/webapp/WEB-INF/
@erhun是的,我还有一个页面,它的行为完全相同(控制器方法执行,404错误)@michelleplecheck redflar3 sugestion,我同意这是一个路径问题。@redflar3所以,这就成功了(如果你能把它作为一个答案,那就太好了),尽管现在我很好奇是什么让它在WebContent
之前工作。我想,当我在我的项目中乱搞的时候,Eclipse设置被吹走了?