在Spring MVC(Pure Annotations)中,处理静态资源,如html,css,javascript和images

时间:2015-12-19 04:22:03

标签: spring spring-mvc spring-annotations

在Spring MVC(Pure Annotations,没有web.xml)中,我希望配置,这样,除了使用控制器处理动态数据外,我的web应用程序还可以显示静态html,javascript,css和图像。 / p>

我正在使用Maven项目结构,因此我将我的网络源文件保存在main/webapp/

main/
 |-> webapp/
      |-> js/
           |-> something.js
      |-> images/
           |-> image.jpg
      |-> test.html

我目前在http://localhost:8080/app-name/**

访问我的动态资源

我做了很多研究,尝试过一些东西,但似乎都没有。我发现的现有例子似乎遗漏了重要的信息。例如,他们将解释一些配置方法,但不解释文件夹结构必须使其工作。

可接受的答案将解释:

  • 需要哪些配置步骤
  • 必须对我的目录结构进行哪些更改(以及必要的原因)
  • 根据我提供的内容
  • ,这些静态资源的url路径是什么

这是我现有的配置代码。

WebConfig.java:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;


@Configuration
@EnableWebMvc
public class WebConfig {
}

MyWebAppInitializer.java:

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class MyWebAppInitializer implements WebApplicationInitializer {

  @Override
  public void onStartup(ServletContext servletContext) throws ServletException {
      WebApplicationContext context = getContext();
      servletContext.addListener(new ContextLoaderListener(context));
      ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context));
      dispatcher.setLoadOnStartup(1);
      dispatcher.addMapping("/*");
  }

  private AnnotationConfigWebApplicationContext getContext() {
      AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
      context.setConfigLocation("com.example.appname.config");
      return context;
  }
}

1 个答案:

答案 0 :(得分:2)

为了使用纯Java配置处理静态资源,您的WebConfig类应扩展此WebMvcConfigurerAdapter类并覆盖addResourceHandlers方法。

您可以查看这些链接以获取更多信息 - 123