$('#submit').click(function () {
var product={}; //声明一个商品json对象,从表单中获取对应属性值
if(isEdit){
product.productId=productId;
}
product.productName=$('#product-name').val();
product.productDesc=$('#product-desc').val();
product.normalPrice=$('#normal-price').val();
product.promotionPrice=$('#promotion-price').val();
product.priority=$('#priority').val();
//获取商品类别
product.productCategory={
productCategoryId:$('#product-category').find('option').not(function () {
return !this.selected;
}).data('id')
};
上图为js文件里从表单中取值的部分,用以组成对象的属性,返回到后端。
对于Product对象,它的组成为
public class Product {
//商品id
private Long productId;
//商品名称
private String productName;
//商品描述
private String productDesc;
//缩略图的地址
private String imgAddr;
//原价
private String normalPrice;
//折扣价
private String promotionPrice;
//优先级,商品显示权重
private Integer priority;
//创建时间
private Date createTime;
//更新时间
private Date lastEditTime;
//商品状态 0—>下架 1->在前端展示系统展示
private Integer enableStatus;
//商品详情图片列表
private List<ProductImg> productImgList;
//属于哪一个商品类别
private ProductCategory productCategory;
//商品隶属于哪一个店铺
private Shop shop;
}
两图对照我们可以看出,js中normalprice、promotionprice属性书写与实体类中不一致(大小写不同)
ObjectMapper mapper=new ObjectMapper();
Product product=null;
//前端将json变成String传递到后端,后端通过key取出value
String productStr= HttpServletRequestUtil.getString(request,"productStr");
//尝试获取前端传过来的表单String流并将其转换为Product实体类
product = mapper.readValue(productStr,Product.class);