Spring - обработка нулевых значений в параметрах запроса - PullRequest
0 голосов
/ 08 ноября 2018

весной (4.3.9):

Параметр запроса, отправляемый от клиента как нулевой на сервер, нулевой объект обрабатывается как строковый нуль в запросе, когда получен через параметр запроса, например:

@RequestParam(value = key, required = false) Integer key

Что касается решения, я могу справиться с этим через клиента и, в первую очередь, предотвратить передачу нулевого значения, и я не смог получить четкое решение из этого ( JavaScript: добавление нулевого значения в Formdata - NumberFormatException ).

Может кто-нибудь помочь мне с тем, какой класс или метод в Spring Framework делает это преобразование из нулевого объекта в строковое значение null.

1 Ответ

0 голосов
/ 08 ноября 2018

Какой бы контент вы ни предоставили для @ReuqestParam по умолчанию, он будет считаться строкой, поэтому null рассматривает его как "null" строку. В рамках пружины Converter<S, R> и ConverterFactory<S, R> преобразуются из String в соответствующий тип.

Вы можете написать собственный конвертер и добавить его в весенний реестр здесь

public class StringToIntegerConverter implements Converter<String, Integer> {

@Override
public Integer convert(String from) {
    // custom logic
   }
}

регистр

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addFormatters(FormatterRegistry registry) {
    registry.addConverter(new StringToIntegerConverter());
       }
 }
...