Can not deserialize value of type int from String
这是我在控制台中遇到的完整错误:
"Could not read document: Can not deserialize value of type int from
String"${product.id}": not a valid Integer value? at [Source:
java.io.PushbackInputStream@40d1a098; line: 1, column: 14] (through
reference chain: haughton.dvdstore.model.AddToCartPojo["productId"]);
nested exception is
com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not
deserialize value of type int from String"${product.id}": not a valid
Integer value? at [Source: java.io.PushbackInputStream@40d1a098; line:
1, column: 14] (through reference chain:
haughton.dvdstore.model.AddToCartPojo["productId"])"
我的html
1 2 3 4 5 6 7 | <form method="post"> <p>Enter quantity you would like to purchase : <input type="number" id="quantity" name="quantity" step="any" min="1" max="${product.quantityInStock}" value="1"></input> </p> <input type="submit" class="btn btn-primary" id="addToCart" name="button" value="Add to cart"/> <input type="hidden" id="productId" value='${product.id}'/> </form> |
App.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $("#addToCart").click(function(event) { var data = {} data["productId"] = $("#productId").val(); data["quantity"] = $("#quantity").val(); $.ajax({ type:"POST", contentType:"application/json", url:"http://localhost:8080/addToCart", data: JSON.stringify(data), dataType: 'json', timeout: 600000, success: function (data) { console.log(data); //... }, error: function (e) { //... } }); event.preventDefault(); }); |
控制器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | @Controller @Scope("session") public class CartController { @Autowired private Cart cart; @Autowired ProductService productService; @RequestMapping(value="/cart", method= RequestMethod.GET) public String searchResults(Model model) { model.addAttribute("cartLines",cart.getLines()); model.addAttribute("cartTotalPrice",cart.getTotalPrice()); return"cart"; } @ResponseBody @RequestMapping(value="/addToCart", method= RequestMethod.POST) public String searchResults(@RequestBody AddToCartPojo addToCartPojo) { Product product = productService.findById(((long) addToCartPojo.getProductId())); if(product == null){ //if the productid supplied doesnt belong to a product in our database return"failure"; } FlashMessage result = cart.add(product,addToCartPojo.getQuantity()); return result.getStatus().toString(); } |
AddToCartPojo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //pojo for sending via ajax public class AddToCartPojo { private int productId; private int quantity; public int getProductId() { return productId; } public void setProductId(int productId) { this.productId = productId; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } |
} ??
我建议更改您的
因此更改此内容:
1 | private int productId; |
对此:
1 |
您还需要更改获取器的n个设置器。