2015-11-30 26 views
1

我有一个在Eclipse中的Tomcat 8上运行的Spring(4)MVC servlet。当我启动tomcat时,控制台中没有错误,并且记录了我的控制器的所有正确的请求映射。如果我尝试访问localhost:8080/app/login我的控制器方法执行(通过调试检查),但我得到一个404页面,如下:404在春天Servlet中解析视图

消息/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

你有另一页?当你要求别人时,他们的行为是否一样? – erhun

+2

你可以尝试把jsp文件夹放在'/ src/main/webapp/WEB-INF /' –

+0

@erhun是的,我有另一个页面,它的行为完全相同(控制器方法执行,404错误) – Michelle

回答

1

AFAIK,默认情况下,在Maven War项目中,jsp文件预计在/src/main/resources/之下。由于您在配置中给出了一个jsp文件前缀/WEB-INF/jsp/,请尝试将jsp文件移至下面的位置。

/src/main/webapp/WEB-INF/jsp/

假设:

  • root/WebContent映射没有在Web部署组件中。

  • 映射到/src/main/webapp存在于Web部署程序集中。

  • 你的Eclipse是使用maven war plugin