2015-08-28 3 views
2

Я объявил метод UrlBasedViewResolver в RestAppConfig для рендеринга страницы jsp.Spring ViewResolver: сопоставления не найдено для HTTP-запроса с URI

@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; 
    } 
} 

, наконец, я бегу сервер tomcat8 с помощью Eclipse. Но запрошенный URI /home просто ответы на это.

не WARN osweb.servlet.PageNotFound - Нет отображения найденного для запроса HTTP с URI [/TheBigs/views/templates/index.jsp] в DispatcherServlet с именем 'отдых-приложением'

I открытое местоположение развертывания ...\org.eclipse.wst.server.core\tmp1\wtpwebapps\TheBigs\views\templates\

... файлы существуют. В чем проблема? Есть что-то, чего я не вижу?

  • Я добавил свой код контроллера BaseController

    @Controller общественного класса BaseController { Logger Регистратор = 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 каталог файлов, и сборка веб-развертывания определены. JSP file directory

enter image description here

+1

Эта ссылка объясняет, как использовать UrlBasedViewResolver: http://www.concretepage.com/spring/spring-mvc/spring-mvc-urlbasedviewresolver-example-java-configuration Будьте осторожны с путями! –

+0

Каков ваш запрос url получить эту ошибку? Вы добавили для него @RequestMapping? – Dinusha

+0

@anvlasop Спасибо за ваш комментарий. Я прочитал вашу ссылку, но, по сути, не знаю, чего мне не хватает. Я размещал файлы при развертывании пути/views/css/templates, а префикс тоже. Разве что-то другое заботится о настройке компонента ViewResolver? –

ответ

2

решаемая. Это вызвано servlet-mapping.

Я изменил url-pattern установлен на / от /*, а затем работает.

Смежные вопросы