Spring MVC List Привязка: почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?JAVA

Программисты JAVA общаются здесь
Anonymous
Spring MVC List Привязка: почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?

Сообщение Anonymous »

Переписка списка Spring MVC: Почему ARR [] = Hello & Arr [] = World требует @Setter, но arr = hello & arr = мир нет?
На нашем фронте мы используем axios , которые по умолчанию сериализуют параметры массива, такие как это:

arr[]=HELLO&arr[]=WORLD
< /code>
Тем не менее, это вызвало 400 ошибок плохого запроса в нашем бэкэнд с пружинной загрузкой (tomcat).
, чтобы исправить это, мы добавили следующую конфигурацию: < /p>

Код: Выделить всё

server:
tomcat:
relaxed-query-chars: ['[', ']', '{', '}']
< /code>
После применения этой настройки все, по-видимому, работает нормально-пока мы не столкнулись с странным случаем.@Getter
@AllArgsConstructor
@ToString
@ParameterObject
public class ExampleRequestDto {

@Parameter(description = "example")
private List arr;

}
< /code>
Наш фронт отправляет запрос, подобный: < /p>
GET /api/example?arr[]=HELLO&arr[]=WORLD
< /code>
 ✅ ожидаемый журнал: < /h2>
ExampleRequestDto(arr=[HELLO, WORLD])
< /code>
 ❌ Фактический журнал: < /h2>
ExampleRequestDto(arr=[HELLO])
< /code>
присутствует только первое значение; Остальные молча игнорируют.
не было исключено или предупреждения.GET /api/example?arr=HELLO&arr=WORLD
Это работает отлично даже без @setter на DTO.
Затем мы добавили @setter в DTO, и исходный arr [] = ... также работал правильно - все значения были связаны.

my aeption>

ol -ol. /> Почему arr [] = hello & arr [] = world требует @setter для правильного связывания, но arr = arr = arr = arr = world не так? Parser? < /li>
Почему проблема молчит (т.е. без исключения или ошибки привязки), даже когда значения отсутствуют? < /li>
< /ol>

context < /h2>

. /> Связывание через @modelattribute < /li>
Регистрация показывает только частичное связывание параметров с форматом [] < /li>
Значения перечисления стандартны, как Hello, World и т. Д. < /li>
< /ul>

Ispect. Конечно.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ire-setter

Вернуться в «JAVA»