2017-04-19 199 views
0

我試圖用兩天時間來設置使用彈簧4的索引頁面。 經過很多次嘗試,我得到了一段可以工作的代碼 但我不明白它爲什麼起作用。配置Spring MVC歡迎頁面

你能告訴我爲什麼。

public class MyWebApplicationInitializer 
    extends AbstractAnnotationConfigDispatcherServletInitializer 
{ 

    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] {AplicationConfig.class}; 
    } 

    protected Class<?>[] getServletConfigClasses() { 
     return new Class[] {WebConfiguration .class}; 
    } 

    protected String[] getServletMappings() { 
     return new String[] {"/"}; 
    } 

} 

這裏的代碼片斷,我發現

// @Bean 
// public InternalResourceViewResolver internalResourceViewResolver() { 
//  InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
//  viewResolver.setPrefix("/WEB-INF/html/"); 
//  viewResolver.setSuffix(".html"); 
//  return viewResolver; 
// } 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/*.html").addResourceLocations("/WEB-INF/html/"); 
     super.addResourceHandlers(registry); 
    } 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("forward:/index.html"); 
//  registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
//  super.addViewControllers(registry); 
    } 

my folders

1)爲什麼使用InternalResourceViewResolver不工作?

2)addResourceHandler和addViewController是如何工作的?這些路徑是什麼?

3)如何將CSS和javascripts文件添加到索引頁?像

<link href="/css/bootstrap.min.css" rel="stylesheet"> 

該頁面加載但沒有CSS和JavaScript文件

我要感謝大家誰幫我,因爲我是一個新手在春天,謝謝你們。

+0

你可以分享ApplicationContextConfig,java'類或你添加了InternalResourceViewResolver bean的類。這可能會有所幫助。 –

回答

0
  1. 只配置InternalResourceViewResolver不足以提供靜態html。您還需要通過控制器綁定路徑來提供頁面。因爲這只是一個靜態頁面,所以你可以用 addViewControllers來實現。

    registry.addViewController(「/」)。setViewName(「index」);

2.

addResourceHandlers:添加處理程序服務靜態資源,如圖片,JS和CSS文件從下Web應用程序根目錄,類路徑和其他特定位置。

addViewControllers:配置預先配置了響應狀態碼和/或視圖以呈現響應主體的簡單自動化控制器。這在不需要定製控制器邏輯的情況下是有用的 - 例如,呈現主頁,執行簡單的站點URL重定向,返回包含HTML內容的404狀態,沒有內容的204狀態等等。

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html#addResourceHandlers-org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry-

3.

爲了使資源(JS,CSS,IMG)可用,您需要添加addResourceHandlers方法中進行配置。

registry.addResourceHandler("/css/**").addResourceLocations("/css/"); 
registry.addResourceHandler("/js/**").addResourceLocations("/js/"); 
registry.addResourceHandler("/img/**").addResourceLocations("/img/"); 

然後包括在JSP頁面的CSS或JS,你可以使用JSTL標籤C:URL或Spring標籤彈簧:URL。

<link href="<c:url value="/css/styles.css" />" rel="stylesheet"> 

<spring:url value="/css/styles.css" var="mainCss" /> 
<link href="${mainCss}" rel="stylesheet" />