2016-09-18 108 views
0

我花了幾個小時試圖使用InternalResourceViewResolver爲了追加前綴和後綴到html視圖。春季啓動:InternalResourceViewResolver不工作

我的視圖位於static/pages/下,Spring文檔,文件夾static被認爲是靜態內容的默認值之一。所以,我可以通過pages/profile.html訪問個人資料頁面。但我真正想要的是profile而不是pages/profile.html

我試過幾個答案,但不起作用,如:

@Bean 
public ViewResolver getViewResolver() { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("pages/"); 
    resolver.setSuffix(".html"); 
    return resolver; 
} 

並添加

@Override 
public void configureDefaultServletHandling(
     DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

仍不能正常工作。 通過添加任何後綴或前綴,我找不到任何路徑頁面。我開始在pages/profile.html上獲得404,但它也沒有出現在其他網址上。

回答

1

只需要添加這樣

@Configuration 
public class WebMvcConfig { 
    @Bean 
    public InternalResourceViewResolver defaultViewResolver() { 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/jsp"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
    } 
} 

自己的自定義配置然後你可以通過「http://localhost:8080/beans

檢查所有的豆類,可以verfity使用自定義的配置豆吧:

{ 

    "bean": "defaultViewResolver", 
    "scope": "singleton", 
    "type": "org.springframework.web.servlet.view.InternalResourceViewResolver", 
    "resource": "class path resource [io/cloudhuang/web/WebMvcConfig.class]", 
    "dependencies": [ ] 

} 

但最簡單的方法應該配置在applicatin.properties

spring.mvc.view.prefix= 
spring.mvc.view.suffix= 
0

使用Spring Boot你實際上不需要聲明你自己的InternalResourceViewResolver。 Boot爲你聲明,你可以添加一些屬性到你的application.properties文件中。例如。在你的情況下,這些將是:

spring.mvc.view.prefix=/jsp 
spring.mvc.view.suffix=.jsp