2016-07-25 17 views
0

Also hier ist mein Projekt:Spring MVC - Seite nicht gefunden

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: mein "index.jsp" Seite ist in:/WEB-INF/Seiten/

Und ich bekomme immer noch nicht die Indexseite: es sagt, es ist nicht gefunden. Danke für Ihre Hilfe.

+0

Warum Sie denken Sie, Soll _die Indexseite_ abgerufen werden? Welchen Teil Ihrer Anwendungskonfiguration halten Sie hier für sinnvoll? Warum denkst du das? –

+0

Nun, ich folgte einem Tutorial und der Mann bekam seine Seite, ich fragte mich warum ich !! Und ich habe bereits den Standard "/" auf "Index" abgebildet, so dass ich das Problem hier nicht sehe. –

+0

Kannst du auf das Tutorial verlinken? Was denkst du, was deine 'internalResourceViewResolver()' Methode machen soll? –

Antwort

1

Try @Bean Anmerkung zu, dass Resolver und @ComponentScan (basePackages = "yourPackages") in die Konfigurationsklasse

Versuchen hinzuzufügen Überschreiben von Resolver zu erhalten:

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

    return viewResolver; 
} 
+0

Vielen Dank !! aber kann ich Ihnen erklären, was es genau tut (ich meine die Methode) –

+1

Es Set View Resolver, durch Java-Anmerkungen konfiguriert. Der View-Resolver ist im Frühjahr verantwortlich für die Auflösung von Sichten nach Namen. Wenn Sie zum Beispiel eine Mapping-Methode im Controller und diese Mapping-Rückgabe-Zeichenfolge haben, ist dieser Resolver für die Suche in unserer Ansichtsseite mit diesem Namen verantwortlich. –

+0

und letzte Frage: Warum müssen wir es als eine Bohne setzen? –