2015-08-28 76 views
2

我在RestAppConfig中聲明瞭UrlBasedViewResolver方法來呈現jsp頁面。Spring ViewResolver:找不到具有URI的HTTP請求的映射

@Bean 
public UrlBasedViewResolver urlBasedViewResolver(){ 
    UrlBasedViewResolver res = new InternalResourceViewResolver(); //new UrlBasedViewResolver();// 
    res.setOrder(10); 
    res.setViewClass(JstlView.class); 
    res.setPrefix("/views/templates/"); 
    res.setSuffix(".jsp"); 

    return res; 
} 

和在控制器delclared ModelAndView的方法BaseController

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages={"kr.co.cdefi.base.restapp.controller"} 
       , useDefaultFilters=false 
       , includeFilters={@Filter(Controller.class) 
           , @Filter(ControllerAdvice.class)}) 
public class RestAppConfig extends WebMvcConfigurerAdapter{ 

    @Override 
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     configurer 
      .useJaf(true) 
      .favorPathExtension(true) 
      .favorParameter(false) 
      .ignoreAcceptHeader(false) 
      .defaultContentType(MediaType.APPLICATION_JSON) 
      .mediaType("json", MediaType.APPLICATION_JSON) 
      .mediaType("xml", MediaType.APPLICATION_XML); 
    }; 

    @Bean 
    public UrlBasedViewResolver urlBasedViewResolver(){ 
     UrlBasedViewResolver res = new InternalResourceViewResolver(); //new UrlBasedViewResolver();// 
     res.setOrder(10); 
     res.setViewClass(JstlView.class); 
     res.setPrefix("/views/templates/"); 
     res.setSuffix(".jsp"); 

     return res; 
    } 
} 

最後,我使用Eclipse運行tomcat8服務器。 但請求URI /home只是迴應此。

WARN osweb.servlet.PageNotFound - 未發現與URI [/TheBigs/views/templates/index.jsp]在DispatcherServlet的名稱爲 '休息應用內'

我HTTP請求映射打開部署位置 ...\org.eclipse.wst.server.core\tmp1\wtpwebapps\TheBigs\views\templates\

...文件存在。問題是什麼?我有什麼遺漏?

  • 我加入我的控制器代碼BaseController

    @Controller 公共類BaseController { 記錄器記錄器= LoggerFactory.getLogger(BaseController.class);

    @Autowired UserService userService; 
    
    @RequestMapping(value="/home", method = RequestMethod.GET) 
    public ModelAndView home(){ 
        logger.debug("home!"); 
        ModelAndView view = new ModelAndView(); 
        view.setViewName("index"); 
    
        return view; 
    } 
    @RequestMapping(value="/", method = RequestMethod.GET) 
    public String index(Model model){ 
        logger.debug("index page!"); 
        model.addAttribute("message", "success"); 
        return "test"; 
    } 
    

    }

有圖像是jsp文件的目錄,以及Web部署大會定義。 JSP file directory

enter image description here

+1

此鏈接詳細說明如何使用UrlBasedViewResolver:http://www.concretepage.com/spring/spring-mvc/spring-mvc-urlbasedviewresolver-example-java-configuration小心路徑! –

+0

什麼是您的請求網址得到此錯誤?你爲它添加了@RequestMapping嗎? – Dinusha

+0

@anvlasop感謝您的評論。我讀了你的鏈接,但不知道我錯過了什麼。我找到部署路徑/視圖/ css /模板上的文件,並且前綴也是一樣的。關於設置ViewResolver bean是否還有其他問題? –

回答

2

解決。它由servlet-mapping引起。

我更改了url-pattern設置爲//*,然後工作。

相關問題