如何在spring-mvc web应用程序中放置图像/ CSS?

时间:2015-11-16 20:48:58

标签: java css spring jsp spring-mvc

我使用Netbeans创建Spring MVC Web应用程序。我有一个简单的控制器和JSP视图。除了不呈现的图像之外,JSP视图正确显示。我的目录结构如下所示:

enter image description here 在我的* .jsp页面中,未呈现的图像被引用如下:

在Spring MVC中,我应该在哪里放置JSP视图引用的文件,如图像,CSS,JS等?

我像这样应用了AppConfig文件。

public void addResourceHandlers(ResourceHandlerRegistry registry) {

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
}

3 个答案:

答案 0 :(得分:1)

您为AppConfig发布的代码是。 。 。令人困惑和语法无效。

实现这一目标的一种简单方法就是这样

@Configuration
public class AppConfig extends WebMvcConfigurationSupport {
    //locate and serve .jsp resources
    @Bean
    public InternalResourceViewResolver getInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/view/");
        resolver.setSuffix(".jsp");

        return resolver;
    }

    //locate our static resources and serve them
    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/assets/**").addResourceLocations(
            "/WEB-INF/assets/");
    }
}

然后可以通过http://the.domain/apppath/assets

访问您的资源

答案 1 :(得分:1)

添加这些行以指定静态资源的路径。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/assets/**").addResourceLocations("/WEB-INF/assets/")
}

等效的XML配置:

<mvc:resources mapping="/assets/**" location="/WEB-INF/assets/" />

然后在你的* .jsp页面中你可以这样做,例如:

<link href="<c:url value="assets/css/myCss.css" />" rel="stylesheet"> 
<script src="<c:url value="assets/js/myJs.js"/>"></script>

答案 2 :(得分:0)

<mvc:default-servlet-handler />申请中启用Spring MVC。您可以使用注释启用,如下所示:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

XML 中:

<mvc:default-servlet-handler/>

要了解更多信息,请查看need and use of mvc:default-servlet-handler