У меня проблемы с передачей нескольких параметров в ресурс GET моего контроллера. Я создал именованный запрос в моем хранилище. Когда я вызываю эту конечную точку GET, она должна выполнить именованный запрос, передав параметры.
Ниже код должен принимать несколько параметров в качестве входных данных, например ID = 1,2,3,4 и т. Д. Он принимает только один вход какparam.
@GetMapping("/message/{Ids}")
@CrossOrigin(origins = "*")
public void multidownload(@PathVariable Long[] Ids , HttpServletResponse response)throws Exception {
List<MessageRepository> messageRepository = Repository.findbyId(Ids);
String xml = new ObjectMapper().writeValueAsString(messageRepository);
String fileName = "message.zip";
String xml_name = "message.xml";
byte[] data = xml.getBytes();
byte[] bytes;
try (ByteOutputStream bout = new ByteOutputStream();
ZipOutputStream zout = new ZipOutputStream(bout)) {
zout.setLevel(1);
ZipEntry ze = new ZipEntry(xml_name);
ze.setSize(data.length);
zout.putNextEntry(ze);
zout.write(data);
zout.closeEntry();
bytes = bout.getBytes();
}
response.setContentType("application/zip");
response.setContentLength(bytes.length);
response.setHeader("Content-Disposition", "attachment; " + String.format("filename=" + fileName));
ServletOutputStream outputStream = response.getOutputStream();
FileCopyUtils.copy(bytes, outputStream);
outputStream.close();
}
скачанный zip-файл должен содержать несколько записей ID, которые были переданы в качестве параметра при вызове конечной точки GET.
Может кто-нибудь взглянуть на мой код и указать, что нужно изменить?