J'ai la méthode de contrôleur ci-dessous qui télécharge des fichiers sur mon serveur. Je voudrais retourner JSON pour le statut de Plupload. Cependant, la réponse semble renvoyée sous la forme d'un envoi plutôt que d'un @ResponseBody json. Des idées?Retour de la réponse JSON pour Spring MVC Post request
private static final String RESP_SUCCESS = "{\"jsonrpc\" : \"2.0\", \"result\" : \"success\", \"id\" : \"id\"}";
private static final String RESP_ERROR = "{\"jsonrpc\" : \"2.0\", \"error\" : {\"code\": 101, \"message\": \"Failed to upload file.\"}, \"id\" : \"id\"}";
@RequestMapping(method = RequestMethod.POST)
public String uploadItem(@RequestBody MultipartFile file,
@RequestParam String name,
@RequestParam(required = false, defaultValue = "-1") int chunks,
@RequestParam(required = false, defaultValue = "-1") int chunk) {
Media media = new Media();
try {
Path path = Paths.get("/Users/username/Desktop/Test", file.getOriginalFilename());
media.setContentType(file.getContentType());
media.setFileName(file.getOriginalFilename());
media.setFileSize(file.getSize());
media.setFilePath(path.toString());
if (media.getContentType().contains("image")) {
Image image = new Image();
image.setImagePath(path.toString());
imageDao.save(image);
}
byte[] bytes = file.getBytes();
Files.write(path, bytes, StandardOpenOption.CREATE);
mediaDao.save(media);
return RESP_SUCCESS;
} catch (IOException e) {
e.printStackTrace();
}
return RESP_ERROR;
}
}
Lancers l'erreur suivante:
WARN - No mapping found for HTTP request with URI [/{"jsonrpc" : "2.0", "result" : "success", "id" : "id"}] in DispatcherServlet with name 'cr'
Je modifié votre réponse à la méthode je qui a fini par fixer depuis votre WAS assez proche de moi arriver. Je vous remercie! – zmanc
La syntaxe n'est pas correcte, veuillez ne pas éditer une réponse suggérant une syntaxe complètement fausse de ce que dit le texte ("le type de retour devrait être @ResponseBody") car il n'a plus de sens. –
@ThomasW Une utilisation d'annotation ne peut pas être un type de retour. Le type de retour est 'String'. La méthode est annotée avec '@ ResponseBody'. –