前端页面请求地址
<video id=example-video width=960 height=540 class="video-js vjs-default-skin" controls> <source src="/media2/course.m3u8" type="application/x-mpegURL"> </video>
后台代码
@RequestMapping(value = "/media2/{id}.m3u8") public String m3u8Generator(@PathVariable("id") String id) { System.out.println(id); return "xxx"; }
后台得到的id结果是course
解决方法
@Configuration public class WebAppConfig extends WebMvcConfigurerAdapter { /*** * Using the @PathVariable on a Spring Boot controller, if a value contains a dot (‘.’) the value after the dot will be truncated. * This happen since Spring MVC considers anything after the last dot as * <a href="https://stackoverflow.com/questions/3526523/spring-mvc-pathvariable-getting-truncated">a file extension by default</a>. * * In order to avoid to getting truncated values it can be disabled this Spring MVC “feature” setting to false the * useSuffixPatternMatch option through the PathMatchConfigurer: * @param configurer */ @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false); } }
参考内容:
Spring MVC @PathVariable getting truncated
SPRING BOOT: AVOIDING PATHVARIABLE PARAMETERS GETTING TRUNCATED ON DOTS