0

我想上传一个带有它的图像的项目对象是否有可能我从我的控制器传递我的项目的完整对象以及它的图像如果是,那么我该怎么做?我还需要一个来自客户端的 Json 模式。

我的以下项目对象的 Json 模式是什么。

Class Item{

String ItemID;
String ItemName;
String CategoryID;
List<Image> imagesList;

}

Class Image{

String imageId;
String imageTitle;
byte[] image;
}

还有一件事情。请告诉我如何在我的控制器中传递两个参数。例如,如果我想在请求正文中传递 Item 对象以及一个额外的参数,比如 String UserID。我该如何编写以下代码。

@RequestMapping(method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void add(@RequestBody Item myItem, String UserID) 

{ ...... }

如果我以 Json 格式传递请求,请告诉我怎么办。它会是什么样子?

{ "Item" : { "ItemID": "1", ......}, "UserID" : "hello"} 

会是这样还是什么?因为我试过了,所以我将对象和字符串设为 Null。我也用@RequestParam 尝试过,但在调试时同样得到了 NULL。

目前我正在处理这个。

Class ItemUserPost{
    Item item;
    String UserID;
}

我将此对象存储在 MongoDB 中。我的整个项目集合会与图像一起存储吗?或者我必须为此使用 MultiPart 和 GridFS API。如果相关问题已经发布,请参考。

请帮助紧急。

提前致谢。

4

1 回答 1

0

请求正文只是一个正文。您不能在同一个正文中传递多个对象或参数。

有 2 次失误:

  1. 如果您使用的是 REST,则可以设置 UserID@RequestMapping(value = "{userId}")并从 URL 中获取。或者,您可以简单地将 UserId 作为查询参数放在您的 url 上。

  2. 继续使用你的ItemUserPost对象。

--

对于第二个问题:

是的,它将与图像一起存储您的收藏。

于 2013-05-14T19:00:56.270 回答