配置Spring MVC欢迎页面

时间:2017-04-19 23:34:52

标签: spring spring-mvc

我尝试用弹簧4设置索引页面两天。 经过多次尝试,我得到了一段有效的代码 但我不明白它为什么会起作用。

你能告诉我原因吗?

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文件

我要感谢所有帮助过我的人,因为我是春天的新手,谢谢你们。

1 个答案:

答案 0 :(得分:0)

  1. 仅配置InternalResourceViewResolver不足以提供静态html。您还需要通过控制器绑定路径以提供页面。因为这只是一个静态页面,你可以用它来做 addViewControllers。

    registry.addViewController( “/”)setViewName( “索引”)。

  2. 2

    addResourceHandlers:添加处理程序以提供静态资源,例如来自Web应用程序根目录下的特定位置的图像,js和css文件,类路径等。

    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标记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" />