簡體   English   中英

如何返回org.springframework.http.ResponseEntity包含數據和文件

[英]How to return org.springframework.http.ResponseEntity includes data and files

我有方法getUser的restful spring控制器,我希望這個方法返回用戶數據:名稱,年齡,城市等,以及用戶圖像。

如何在一個響應中返回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);
    }

我想要返回圖像和用戶

您的響應主體需要是單個對象。 你最好的選擇是創建一個像這樣的對象

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

然后在您的響應中返回UserWithResources

你可以使用map來包裝數據,

    @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);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM