2017-04-19 135 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" />