2015-08-28 78 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设置为//*,然后工作。

相关问题