- HTTP响应主体的方式不同:
a. @RestController:
1. 返回的对象数据作为JSON/XML直接写入HTTP响应.
2. 是@Controller + @ResponseBody组合注解.
- 获取请求参数方式:
- 在方法写形参获取 => 适合少量的
- 定义一个对象存储提交的字段 => 适合量多的
3. 在方法写形参:
3.1 Get:
index(@RequestParam(value = "productId", required = false) String productId)
表示productId是非必传项
@RequestParam(value = "page", defaultValue = "0") Integer page
表示page参数默认值为0
4. 字义对象存储提交的字段:
(1). 验证对象:
# com/shop/form/ProductForm.java
package com.shop.form;
import lombok.Data;
@Data
public class ProductForm {
private String productId;
private String productName;
......
}
(2). 控制器:
# com/shop/controller/SellerProductController.java:
@PostMapping("/save")
public void save(@Valid ProductForm form, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new SellException(ResultEnum.PARAMS_ERROR.getCode(),
bindingResult.getFieldError().getDefaultMessage());
}
}
// 判断字符值是否为空
if (!StringUtils.isEmpty(productId)) {
// 查询存在的商品名称
}
数据拷贝
import org.springframework.beans.BeanUtils;
ProductInfo productInfo = new ProductInfo();
BeanUtils.copyProperties(form, productInfo);
List<OrderDetail> orderDetailList = new ArrayList<OrderDetail>(){
{
add(new OrderDetail(101, "鸭肉"));
add(new OrderDetail(102, "肌肉"));
}
};
标签:shop,java,form,捕获,ProductForm,new,异常,page,productId From: https://blog.51cto.com/u_16251183/8185047