Spring boot 配置 webapp 下资源文件

19 篇文章 0 订阅
7 篇文章 0 订阅

spring boot 在 1.5.x以后已经不支持 jar 打包使用 jsp 了,必须使用 war 打包,引入 static 下静态资源文件可以使用 classpath:/static/,如果指定到 webapp 下静态资源文件不能使用 classpath:,直接以 / 开头就可以。

import java.util.List;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.filter.HttpPutFormContentFilter;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

import com.znv.framework.common.error.ServiceExceptionHandler;
import com.znv.framework.interceptors.CommonInterceptor;
import com.znv.framework.spring.SpringContextUtil;

/**
 * @author Chenfei
 */
@EnableWebMvc
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/views/default");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    } 

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        /**
         * 自定义拦截器
         */
        registry.addInterceptor(new CommonInterceptor()).addPathPatterns("/**").excludePathPatterns("/resources/**",
            "/main/uscc/**", "/lang/**", "/**/js/**", "/**/css/**", "/**/*.xml", "/**/bootstrap/**", "/**/plugins/**",
            "/**/404", "/**/500", "/**/error", "/webcontent/**", "/files/**", "/main/mobile/**", "/mobile/**");
    }

    /**
     * 关于PUT方法获取不到参数的处理
     */
    @Bean
    public FilterRegistrationBean hiddenHttpMethodFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        //注入过滤器
        registration.setFilter(new HiddenHttpMethodFilter());
        //拦截规则
        registration.addUrlPatterns("/");
        //过滤器名称
        registration.setName("HiddenHttpMethodFilter");
        //过滤器顺序
        registration.setOrder(1);
        return registration;
    }

    /**
     * 关于PUT方法获取不到参数的处理
     */
    @Bean
    public HttpPutFormContentFilter httpPutFormContentFilter() {
        return new HttpPutFormContentFilter();
    }

    /**
     * 自定义静态资源映射
     */
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/",
            "classpath:/resources/", "classpath:/static/", "classpath:/public/");
        registry.addResourceHandler("/views/**").addResourceLocations("classpath:/static/main/");
        // 指到 webapp 目录下
        registry.addResourceHandler("/webcontent/**").addResourceLocations("/webcontent/");
    }

    /**
     * 视图配置
     * @return
     */
    @Bean
    public InternalResourceViewResolver resourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/main/");
        resolver.setSuffix("");
        return resolver;
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.viewResolver(resourceViewResolver());
//        registry.jsp("", ".jsp");
    }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值