SpringBoot @RequestParam MultipartFile преобразует строку @RequestParam в конкатенацию строк - PullRequest
0 голосов
/ 09 апреля 2019

Я обнаружил это странное поведение при разработке контроллера SpringBoot.

Версия SpringBoot в pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

Создание контроллера

@Controller
@RequestMapping("/route")
@Slf4j
public class Api {

    @PostMapping
    public ResponseEntity<Void> createFromCsv(@RequestParam("label") String label,
                                              @RequestParam MultipartFile csvFile) {

        log.debug("label {}", label);
        return new ResponseEntity<>(HttpStatus.OK);
    }
 }

ЕслиЯ создаю сообщение, отправляющее значение, подобное этому

post to controller

В моем внутреннем коде, когда данные будут поступать и манипулировать к весне @RequestParam, за исключением файла из нескольких частейсовершенно не правы

back end debugging

Как вы можете видеть, значение метки, представляющей пробел во время записи, дублируется в моем контроллере.Этого не произойдет, если я удалю MultipartFile из контроллера

UPDATE

Я видел, что дополнительный RequestParam из подписи будет помещен в requestMultipartParam

Анализируя запрос httpServletRequest, это то, что у меня есть

http servlet request param map

Как видите, значение дублируется.

...