Привет всем (первый пост здесь!)
У меня проблема с простым веб-приложением, которое я разрабатываю.
Я создал службу отдыха (POST) с пружинной загрузкой, но когда я пробую эту службу из внешнего интерфейса, я не могу получить какие-либо значения в моем @ RequestBody.
JavaScript, вызывающий контроллер, выглядит следующим образом
bookStore.html
//Submit shopping cart to the backend to be saved
checkout : function() {
//Place holder for the POST Request
this.$http.post('/createOrder', {
'shopCart' : {'basket' : this.shoppingCart}
});
//END Post request
}
OrderController.java
@RequestMapping(value = "/createOrder",
method = RequestMethod.POST)
public String createOrder(@RequestBody ShoppingCart shopCart, Model model) {
Order order = new Order();
Float totalPrice = 0f;
order.setCreationDate(new Date());
List<String> bookIdList = new ArrayList<>();
for (Book book : shopCart.getBasket()) {
bookIdList.add(book.getId());
totalPrice = totalPrice + book.getPrice();
}
order.setItemList(bookIdList);
order.setTotalOrder(totalPrice);
orderRepo.save(order);
List<Order> orderList = orderRepo.findAll();
model.addAttribute("addedOrder", order);
model.addAttribute("orderList", orderList);
return "orderList";
}
ShoppingCart.java
public class ShoppingCart {
private List<Book> basket;
public List<Book> getBasket() {
return basket;
}
public void setBasket(List<Book> basket) {
this.basket = basket;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("BookList [shoppingCart=");
builder.append(basket);
builder.append("]");
return builder.toString();
}
}
Обратите внимание, что shoppingCart определен как массив объектов в VUE js. Когда я устанавливаю это значение, оно выглядит так
{"shoppingCart":[{"id":"5add48ed217c1823543f0610","name":"War and Peace","author":"Leo Tolstoy","price":25},{"id":"5add48ed217c1823543f060f","name":"Madame Bovary","author":"Gustave Flaubert","price":20}]}
Проблема в том, что shopCart всегда нулевой. Я что-то пропустил ? кажется, что это основная вещь, и она прекрасно работает с контроллером RequestParam, который я делал до