Я возвращаю список объектов в виде json моему контроллеру spring, но мне также нужно передать ему некоторые данные о клиенте, такие как имя, фамилия, адрес, тип оплаты, поэтому я подумал, что создаю для этого POJO и передаю это как параметр запроса, но не повезло.
Весенний контроллер:
@RequestMapping(value = "/addstock", method = RequestMethod.POST)
public @ResponseBody
String addPersons(@RequestBody StockList stock, @RequestParam(name="details") AddDetails details) throws ParseException, IOException
Pojo - это AddDetails, в котором есть геттер/сеттер и т. д., использующий ломбок. Я пытаюсь передать в своем javascript следующее:
function sendData() {
var stocks = JSON.stringify({'stocks': model.stock()});
var obj = { "firstname":"Steve", "lastname":"Green"};
obj = JSON.stringify({'details':obj});
$.ajax({
url:"/addstock?details="+obj,
type: 'POST',
data: stocks,
dataType: "html",
contentType: 'application/json',
mimeType: 'application/json',
success: function(data){
console.log(data);
return false;
}
});
}
Но, очевидно, я не могу передать объект параметру details. Можно ли по-другому?
Большое спасибо
*** ОБНОВИТЬ ***
Отсортировав это сейчас, я в основном создал еще одно pojo для сведений о клиенте, которое добавляется к стандартному объекту json:
Пример:
function sendData() {
var adddetails = {firstname:"steve",lastname: "jack",add1:"6 redby lane",add2:"brixon",add3:"",city:"manchester",postcode:"b3434",tel:"0090909090"};
var stocks = JSON.stringify({'details':adddetails,'stocks': model.stock()});
$.ajax({
url:"/addstock",
type: 'POST',
data: stocks,
dataType: "html",
contentType: 'application/json',
mimeType: 'application/json',
success: function(data){
console.log(data);
return false;
}
});
return false;
}
@Getter
@Setter
public class AddDetails {
private String firstname, lastname,add1,add2,add3,postcode,tel;
}
@Getter
@Setter
public class StockList {
AddDetails details;
List<Stock> stocks;
}
@RequestMapping(value = "/addstock", method = RequestMethod.POST)
public @ResponseBody
String addPersons(@RequestBody StockList stock) throws ParseException, IOException {
try {
// perform add operation
stock.getStocks().forEach(s->System.out.println(s));
return "Successfully added stock.";
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return "Error";
}