2015-11-30 42 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