在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/**
我做了很多研究,尝试过一些东西,但似乎都没有。我发现的现有例子似乎遗漏了重要的信息。例如,他们将解释一些配置方法,但不解释文件夹结构必须使其工作。
可接受的答案将解释:
这是我现有的配置代码。
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;
}
}
答案 0 :(得分:2)
为了使用纯Java配置处理静态资源,您的WebConfig
类应扩展此WebMvcConfigurerAdapter类并覆盖addResourceHandlers方法。