2016-08-06 6 views
1

私のViewResolverが期待どおりに動作していません。私は、さまざまな要求を処理するための複数のコントローラを持っています。Spring 4でViewResolverが正常に動作しない

のAppConfigクラス

package in.andonsystem.config; 

import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 

@Configuration 
@ComponentScan(basePackages = {"in.andonsystem"}) 
public class AppConfig extends WebMvcConfigurerAdapter{ 

} 

DispatcherConfigクラス:

package in.andonsystem.config; 

import org.springframework.context.MessageSource; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.support.ResourceBundleMessageSource; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 
import org.springframework.web.servlet.view.JstlView; 

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = {"in.andonsystem.controllers"}) 
public class DispatcherConfig extends WebMvcConfigurerAdapter{ 
    @Bean 
    public ViewResolver viewResolver(){ 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("WEB-INF/views/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 

    @Bean 
    public MessageSource messageSource(){ 
     ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); 
     messageSource.setBasename("messages");  
     return messageSource; 
    } 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
    } 
} 

AppInitializerクラス

package in.andonsystem.config; 

import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRegistration; 
import org.springframework.web.WebApplicationInitializer; 
import org.springframework.web.context.ContextLoaderListener; 
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; 
import org.springframework.web.servlet.DispatcherServlet; 

public class AppInitializer implements WebApplicationInitializer{ 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     // Create the 'root' Spring application context 
     AnnotationConfigWebApplicationContext rootContext = 
     new AnnotationConfigWebApplicationContext(); 
     rootContext.register(AppConfig.class); 

     // Manage the lifecycle of the root application context 
     servletContext.addListener(new ContextLoaderListener(rootContext)); 
     servletContext.addListener(ContextListener.class); 

     // Create the dispatcher servlet's Spring application context 
     AnnotationConfigWebApplicationContext dispatcherContext = 
     new AnnotationConfigWebApplicationContext(); 
     dispatcherContext.register(DispatcherConfig.class); 

     // Register and map the dispatcher servlet 
     ServletRegistration.Dynamic dispatcher = 
     servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherContext)); 
     dispatcher.setLoadOnStartup(1); 
     dispatcher.addMapping("/"); 
    } 
} 

MiscControllerクラス

package in.andonsystem.controllers; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class MiscController { 

    @RequestMapping("/") 
    public String index(){ 
     return "index"; 
    } 
} 
01以下のコードスニペットです

SectionControllerクラス

package in.andonsystem.controllers; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
@RequestMapping("/section") 
public class SectionController { 

    @RequestMapping(name = "/show",method = RequestMethod.GET) 
    public String showSection(){ 
     System.out.println("Section"); 
     return "section"; 
    } 

} 

私が直面しています問題は、それを転送する{root context}/section/WEB-INF/views/section.jspの代わりに、私はそれはshowSection()SectionControllerの方法にリダイレクトされたURL {context path}/section/showアクセスすると、「節」は標準出力に印刷されているが、その後{root context}/WEB-INF/views/section.jsp

私は何が欠けていますか?

ありがとうございます。

答えて

0

は、私はそれがそうでない場合は、前方

viewResolver.setPrefix("/WEB-INF/views/"); 

リクエストURLに相対的であるべきだと思います。

関連する問題