杂记
1.校验前端传参的方式
之前做项目,每次判断前端的请求参数的时候,都是用静态的方法在做,像下面这样,先定义一个请求参数,
然后当这个参数被传递过来的时候再去判断。
具体的判断像下面这样
public static Boolean checkSaveManagerNull(SaveManagerRequest saveManagerRequest) {
return
StringUtils.isEmpty(saveManagerRequest.getBranchCompanyId())||
StringUtils.isEmpty(saveManagerRequest.getOpenId())||
StringUtils.isEmpty(saveManagerRequest.getPhone())||
StringUtils.isEmpty(saveManagerRequest.getShopId())||
StringUtils.isEmpty(saveManagerRequest.getShopName()) ;
}
虽说也能起到效果,但是感觉上就是很啰嗦,看起来也不优雅。
其实java中javax包下提供了很多这样注解供我们使用,判断字符串不为空的,判断数字长度的,判断是否满足正则的,现在把常用的几个写在下面,用的时候好找
其中的message注解的含义是,当传递的参数不符合要求时给什么样的提示。
当你在请求对象中写明这些规则,千万不要忘记最最最重要的一件事,需要在这个对象被声明的地方使用@Valid注解(级联验证)。
千万别忘,忘记就GG。
2.接收前端集合类型的对象
java中涉及到前端请求,最常见的也就是post和get请求。下面分别看下两种情况json数据怎么写
get请求
controller层
接收的对象详细信息是
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* @author : wuwensheng
* @date : 14:12 2020/6/19
*/
@Data
public class UserPageRequest {
//搜索的班级名称或者用户名称
private String keywords;
//第几页
@NotEmpty(message = "第几页不可为空")
private String page;
// 一页多少条数据,待选值50,100,200,默认50
private String paping;
//筛选数据的院系id集合,例如:[55,22,33],就只返回院系id为55,22,33的数据
private int [] filterGroupFacultyId;
//筛选数据的角色id集合,例如,[88,22],就只返回角色id为88的数据
private int [] filterGroupRoleId;
//0代表筛选禁用的用户,1代表筛选启用的用户
private Integer stateId;
//0代表筛选女,1代表筛选男
private Integer sex;
}
请求的写法
post请求
若post请求直接传递一个集合,集合中元素为一个对象
controller层
集合中的对象的详细信息
@Data
public class OrderReturnBO {
/**
* 订单ID
*/
private String orderId;
/**
* 退货类型 (1-部分退货 2-全部退货 3-拒绝退货)
*/
private Integer returnType;
/**
* 退款状态 (1-待退款 2-已退款 3-已支付)
*/
private Integer returnStatus;
}
postman传递的方式
若请求传递一个对象,对象中含有集合,和上面的差不多,只不过是将上面的放在一个对象中。
3.注意@RequestBody注解的使用
使用springBoot框架的小伙伴非常熟悉这个注解,它的作用是告知控制器以json格式接收请求的参数。
但是绝对不要将这个注解写在get请求上,如果get请求接收对象,对象上什么都不要加,springMVC会帮我们自动映射的。
错误写法
正确写法