一、参数校验
说明:如果不加@Valid注解验证不会生效。
.@NotNull:
不能为null,但可以为empty(""," “,” ") ,一般用在基本数据类型的非空校验上,而且被其标注的字段可以使用 @size/@Max/@Min对字段数值进行大小的控制
2.@NotEmpty:
不能为null,而且长度必须大于0(" “,” "),一般用在集合类上面
3.@NotBlank:
这玩意只能作用在接收的String类型上,注意是只能,不能为null,而且调用trim()后,长度必须大于0
@Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。
@Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。
如果controller中某个方法做基本类型参数验证需要在类上添加@Valid注解
@RestController
@RequestMapping(value = "/wallet_log", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
@Valid
@Api(tags = "app-消费记录")
public class CpWalletLogController extends BaseController {
@ApiOperation(value = "根据app用户id 分月查询明细记录")
@ApiImplicitParams(
@ApiImplicitParam(name = "uid", value = "app用户id", dataType = "string")
)
@PostMapping("/select_page_month")
@Validated
public ServerResponse selectPageByMonth(@RequestHeader("uid") @NotBlank(message = "app用户id不能为空") String uid, @Valid AppWalletLogQo appWalletLogQo) {
IPage<CpWalletLogVo> walletLogVoIPage = cpWalletLogService.selectPageByMonth(uid, appWalletLogQo);
return ServerResponse.success(walletLogVoIPage);
}
}
如果controller中某个方法做对象参数验证 需要在当前方法入参添加@Valid注解
public String getUsername(@Valid User user){}
二、参数接收
注意:
@ResponseBody 返回值为json字符串
@RequestBody (@RequestBody AdminUserMenu adminUserMenu) 对象类型的入参为>@RequestBody 但对象中要有对应的属性
@RequestParam (@RequestParam(“id”) String id) 基本数据类型用@RequestParam
@Param(“warehouseId”) Mapper中多参数传递用
String refundAmountTotal(@Param("refundStatus") String refundStatus);