2016-07-25 58 views
0

因此,這裏是我的項目:Spring MVC的 - 找不到網頁

WebConfig.java:

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter{ 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("index"); 
} 

public InternalResourceViewResolver internalResourceViewResolver() { 

    InternalResourceViewResolver resolver = new   InternalResourceViewResolver(); 
    //strings to views 
    //success from a controller -* prefix/success/suffix 
    //success from a controller -* /WEB-INF/pages/success.jsp 
    resolver.setPrefix("/WEB-INF/pages/"); 
    resolver.setSuffix(".jsp"); 

    return resolver; 
} 
} 

AppInitializer.java:

public class WebAppInitializer implements WebApplicationInitializer{ 

public void onStartup(ServletContext container) throws ServletException { 
    AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); 
    rootContext.register(WebConfig.class); 

    container.addListener(new ContextLoaderListener(rootContext)); 

    DispatcherServlet dispatcherServlet = new DispatcherServlet(rootContext); 

    ServletRegistration.Dynamic registration = container.addServlet("dispatcherServlet", dispatcherServlet); 
    registration.setLoadOnStartup(1); 
    registration.addMapping("/"); 
} 

} 

PS:我 「的index.jsp」頁面在:/ WEB-INF/pages/

而我仍然沒有得到索引頁:它說這沒找到。 感謝您的幫助。

+0

爲什麼你認爲你應該_獲取索引page_?你認爲這是你的應用程序配置的哪一部分?你爲什麼這麼認爲? –

+0

嗯,我跟着一個教程,這個人確實得到他的網頁,我想知道爲什麼我!我已經將默認的「/」映射到「索引」,所以我在這裏沒有看到問題。 –

+0

你能鏈接到教程嗎?你認爲你的'internalResourceViewResolver()'方法是做什麼的? –

回答

1

嘗試@Bean註解爲解算和@ComponentScan(basePackages =「yourPackages」)添加到配置類

試圖得到改寫解析器:

@Bean 
public ViewResolver viewResolver() 
{ 
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setViewClass(JstlView.class); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".jsp"); 

    return viewResolver; 
} 
+0

非常感謝!但我能解釋一下它究竟做了什麼(我的意思是方法) –

+1

它設置了由Java註釋配置的視圖解析器。 View解析器在春季負責按名稱解析視圖。例如,如果你在控制器中有映射方法,並且映射返回字符串,那麼解析器負責在我們的視圖頁面中使用該名稱進行搜索。 –

+0

和最後一個問題:爲什麼我們需要將它設置爲一個bean? –