Как вернуть org.springframework.http.ResponseEntity включает данные и файлы - PullRequest
1 голос
/ 16 апреля 2019

У меня есть контроллер пружины restful с методом getUser, я хочу, чтобы этот метод возвращал данные пользователя: имя, возраст, город и т. Д., А также изображения пользователя.

Как я могу вернуть объект Java и файлы в одном ответе?

    @RequestMapping(value = "/getUser", method = RequestMethod.GET)
    @ResponseBody
    public ResponseEntity getUser(@RequestBody UserRequest req) 
    {
        User user=userProfileService.getUserProfileByEmail(req.getEmail());
        Resource resourceImg1 = new ServletContextResource(servletContext, "D:/images/userImg1.jpg");
        Resource resourceImg2 = new ServletContextResource(servletContext, "D:/images/userImg2.jpg");
        List<Resource> resourcesList = new ArrayList<Resource>();
        resourcesList.add(resourceImg1);
        resourcesList.add(resourceImg2);
        return new ResponseEntity(user, resourcesList, new HttpHeaders(), HttpStatus.OK);
    }

Я хочу вернуть изображения и пользователю

Ответы [ 2 ]

2 голосов
/ 16 апреля 2019

Ваше тело ответа должно быть одним объектом.Лучше всего создать объект типа

public class UserWithResources() {
    private User user;
    private List<Resources> resources;
    ...etc
}

, а затем вернуть UserWithResources в вашем ответе

1 голос
/ 16 апреля 2019

Вы можете использовать карту, чтобы обернуть данные,

    @RequestMapping(value = "/getUser", method = RequestMethod.GET)
    @ResponseBody
    public ResponseEntity getUser(@RequestBody UserRequest req) 
    {
        User user=userProfileService.getUserProfileByEmail(req.getEmail());
        Resource resourceImg1 = new ServletContextResource(servletContext, "D:/images/userImg1.jpg");
        Resource resourceImg2 = new ServletContextResource(servletContext, "D:/images/userImg2.jpg");
        List<Resource> resourcesList = new ArrayList<Resource>();
        resourcesList.add(resourceImg1);
        resourcesList.add(resourceImg2);
        Map<String,Object> dataMap=new HashMap<String,Object>();
        dataMap.put("user",user);
        dataMap.put("resourcesList",resourcesList);
        return new ResponseEntity(dataMap,new HttpHeaders(), HttpStatus.OK);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...