Spring Могу ли я опубликовать массив параметров с multipart / form-data? - PullRequest
0 голосов
/ 19 сентября 2019

Spring. Могу ли я разместить массив параметров с multipart / form-data

@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Object postData(@ModelAttribute DataDto request) {
  return request;
}

@Getter
@Setter
public class DataDto {
  private String number;
  private List<DetailDto> detail;
  private MultipartFile screenshot;
}

@Getter
@Setter
public class DetailDto {
  private String code;
  private String desc;
}

Результат:

org.springframework.beans.InvalidPropertyException: недопустимое свойство 'detail [0][code] 'класса bean-компонента [com.my.project.dto.DataDto]: свойство, на которое есть ссылка в пути индексированного свойства' detail [0] [code] ', не является ни массивом, ни списком, ни картой;Возвращенное значение было [DetailDto (code = null, desc = null)]

Вот пользовательский интерфейс

<form action="http://localhost:8081/test/multi" method="post" enctype="multipart/form-data">
<input name="number" value="number" autofocus>
<input type="file" name="screenshot">
<input name="detail[0][code]" value="code">
<input name="detail[0][desc]" value="desc">
<button>submit</submit>
</form>

1 Ответ

0 голосов
/ 19 сентября 2019

пожалуйста, попробуйте код ниже:

    <form action="http://localhost:8081/test/multi" method="post" enctype="multipart/form-data">
    <input name="number" value="number" autofocus>
    <input type="file" name="screenshot">
    <input name="code" value="code">
    <input name="desc" value="desc">
    <button>submit</submit>
    </form>

    @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Object postData(@ModelAttribute DetailDto request) {
        return request;
    }

Надеюсь, это поможет и другим людям :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...