2013-04-17 3 views
0

Я хочу загрузить объект объекта с его изображением, возможно ли, что я передаю полный объект своего Предмета вместе с его изображением из моего Контроллер, если да, то как я могу это сделать? и мне нужен шаблон Json, который будет поступать с клиентской стороны.Как разместить более одного параметра с помощью аннотации Spring @ requestparam/@ requestbody в json формате

Каким будет шаблон Json для моего следующего объекта объекта.

Class Item{ 

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

} 

Class Image{ 

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

и еще одна вещь. Скажите, пожалуйста, как я могу передать два параметра в моем контроллере. например если я хочу передать объект Item в Тело запроса вместе с дополнительным параметром, скажите String UserID. HOw я могу написать следующий код.

@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. Пожалуйста, обратитесь, если уже заданный вопрос.

Пожалуйста, помогите Срочно.

Спасибо заранее.

+0

Пожалуйста, любой может помочь мне, это срочно. – xriztot

ответ

0

Тело запроса - это только ОДИН орган. Вы не можете передавать несколько объектов или параметров в одном теле.

Существует 2 Обороты для этого:

  1. Если вы используете REST, вы можете поставить UserID на @RequestMapping(value = "{userId}") и получить его из URL. Или вы можете просто поместить параметр UserId в качестве запроса на свой url.

  2. Продолжайте использовать ваш объект ItemUserPost.

-

И второй вопрос:

Да, он будет хранить свою коллекцию с изображениями.

+0

Спасибо за помощь Deividi. Я готов с этим .. – xriztot

+0

Мне нужна еще одна помощь по загрузке изображения из iOS в мой ресурс, получая @RequestParam как CommonsMultipart fileUpload. Все отлично работает с моим iOS-клиентом, но я получаю ответ 404 Not Found. Я узнал, что это не касается моего ресурса по API-сервису. Пожалуйста, дайте мне знать, если вы хотите увидеть код для получения дополнительных разъяснений. Спасибо заранее. – xriztot

+0

Это моя функция ресурса: '@RequestMapping (value ="/storeimages ", method = RequestMethod.POST) @ResponseStatus (HttpStatus.OK) общественных пустот storeItemImages (@RequestParam CommonsMultipartFile [] FileUpload) бросает исключение { // Рабочая входного потока и хранить его в БД } ' – xriztot

Смежные вопросы