#spring-boot #request
#spring-boot #запрос
Вопрос:
Есть ли какой-либо способ получить все записи данных формы, описанные ниже в spring controller
? Я пробовал несколько способов, таких как Multipartfile[]
, HttpServletRequest
в качестве параметров контроллера
public ResponseEntity<String> endpoint1(HttpServletRequest request)
но кажется, что spring каким-то образом проверяет данные формы и отклоняет все записи данных формы, которые имеют file или files в качестве значения, а их ключ отличается от «file» или «files», поэтому «file1» и «file2» не представлены ни в одном поле HttpServletRequest request
другие записи данных формы data data2 data3
представлены в
HttpServletRequest request getParameterMap
Ответ №1:
@PutMapping(value="/api/event/videos/update/{id}")
public ResponseEntity<String> uploadFile(@PathVariable(value = "id") Long id,
@RequestParam("file1") MultipartFile file1, @RequestParam("file2") MultipartFile file2,
@RequestParam("data") Object data, @RequestParam("data1") Object data1,
@RequestParam("data2") Object data2) {
ObjectMapper mapper = new ObjectMapper();
DataResource dataResource = mapper.readValue(object.toString(), DataResource.class);
Data1Resource data1Resource = mapper.readValue(object.toString(), Data1Resource.class);
Data2Resource data2Resource = mapper.readValue(object.toString(), Data2Resource.class);
return ......
}
Комментарии:
1. Спасибо, но количество записей данных формы не является статическим, может быть динамическим, и я хочу общую структуру, такую как карта, которая содержит их все
2. Доступны некоторые другие варианты
@RequestParam Map<String, Data> parameters
или@RequestParam(value = "Datas") Set<Data> test
или@MatrixVariable