Spring - отключить усечение расширения пути / согласование содержимого - PullRequest
0 голосов
/ 26 февраля 2019

В SpringBoot v2.1.3 при настройке @ RequestMapping следующим образом:

@GetMapping("/assets/{name}")
public AssetInfo assetInfo(@PathVariable("name") String name) {
  return getAssetInfo(name);
}

запрос к /assets/image123.jpg вызовет:

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:219)

поскольку он предполагает, что полученный тип контента должен быть image/jpeg.

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете отключить это в WebMvcConfigurer:

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
  configurer.favorPathExtension(false);
}

, что решит проблему согласования контента - но Spring по-прежнему исключает расширение из PathVariable (id = "image123").Это можно отключить с помощью:

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
  configurer.setUseSuffixPatternMatch(false);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...