Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 404在SpringServlet中解析视图_Java_Spring_Spring Mvc_Servlets - Fatal编程技术网

Java 404在SpringServlet中解析视图

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

我在Eclipse中的Tomcat8上运行了一个Spring(4)MVCServlet。当我启动tomcat时,控制台中没有错误,并且记录了控制器的所有正确请求映射。如果我尝试访问
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插件

您还有其他页面吗?当您请求其他人时,他们的行为是否相同?能否尝试将jsp文件夹放入
/src/main/webapp/WEB-INF/
@erhun是的,我还有一个页面,它的行为完全相同(控制器方法执行,404错误)@michelleplecheck redflar3 sugestion,我同意这是一个路径问题。@redflar3所以,这就成功了(如果你能把它作为一个答案,那就太好了),尽管现在我很好奇是什么让它在
WebContent
之前工作。我想,当我在我的项目中乱搞的时候,Eclipse设置被吹走了?