我们经常会遇到传参导致的代码异常或数据格式不正确
所以一般需要在controller入参时加上格式校验
直接贴代码
实体类加注解```java
@Data
public class TerminalAuthorizationDeptVO {
@NotNull(message="部门id不能为空",groups={Groups_Add.class})
@NotEmpty(message="部门id不能为空",groups={Groups_Add.class})
private Long deptId;
@NotNull(message="消费设备列表不能为空",groups={Groups_Add.class})
@NotEmpty(message="消费设备列表不能为空",groups={Groups_Add.class})
private List<Long> terminalIds;
}
```
校验方法代码
```java
public static String validate(Object obj,Class<?>... groups){
logger.info("BeanValidatorUtil.validate start...");
logger.debug("BeanValidatorUtil.validate type={},param={}", obj.getClass(), JSON.toJSONString(obj));
//用户存储验证后的错误信息
StringBuffer buffer = new StringBuffer();
Validator validator = getValidator();
//验证某个对象的所有属性
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj,groups);
Iterator<ConstraintViolation<Object>> iter = constraintViolations.iterator();
while(iter.hasNext()){
String message = iter.next().getMessage();
buffer.append(message);
break;
}
logger.info("BeanValidatorUtil.validate result={}" , buffer.toString());
logger.info("BeanValidatorUtil.validate end...");
return buffer.toString();
}
private static Validator getValidator(){
return Validation.buildDefaultValidatorFactory().getValidator();
}
```
本文介绍了在Java控制器中进行参数格式校验的重要性,并提供了一段示例代码,展示了如何通过实体类注解和校验方法确保传入参数的正确性,以避免因参数异常导致的代码错误。
1万+

被折叠的 条评论
为什么被折叠?



