1. 程式人生 > >springboot使用validation 插件做數據校驗

springboot使用validation 插件做數據校驗

get json pub boot 多說 private response seq bst

不多說廢話。

首先,我們需要在入參實體對象中,使用註解,控制

@Data
public class UpdateShufflingRequest {
private String shuffling_logo;
private Integer shuffling_state;//是否輪播,0否,1是
private String shuffling_no;//輪播圖編號
@NotEmpty(message="小區id不允許空")
private String community_id;
private Integer order_seq;
}

然後在controller中
需要在入參實體對象前 加@Validated,通知容器需要對這些參數做校驗
BindingResult  是Validation插件中的類
當校驗不通過的時候,具體的響應信息會都在其中,假如我們隊這些信息不做處理,返回前端的內容會多而雜。因此我們需要封裝一下
@RequestMapping("/updateShuffling")
public CommonResponse updateShuffling(@Validated UpdateShufflingRequest updateShufflingRequest, BindingResult result){
log.info( "updateShuffling start{}",JSONObject.toJSONString( updateShufflingRequest ) );
if(result.hasErrors()) {
//數據校驗
ErrValid errValid=ValidUtils.getErrorMsg( result );

return ResponseUtil.failed( errValid.getCode(), errValid.getErrMsg() );
}
//......其他主體邏輯
return ResponseUtil.success( "", "成功" );
}

public static ErrValid getErrorMsg(BindingResult result){
StringBuffer msg = new StringBuffer();
//獲取錯誤字段集合
List<FieldError> fieldErrors = result.getFieldErrors();
//遍歷錯誤字段獲取錯誤消息
for (FieldError fieldError : fieldErrors) {
//獲取錯誤信息
//添加到錯誤消息集合內
msg.append(fieldError.getField()+":"+fieldError.getDefaultMessage()+",");
}
String errMsg = msg.toString();
ErrValid errValid = new ErrValid();
errValid.setCode( 99999 );
errValid.setErrMsg( errMsg.substring( 0,errMsg.length()-1 ) );
return errValid;
}

至此,完成

參考:https://ciweigg2.github.io/2018/08/05/springboot-qing-song-gao-ding-shu-ju-yan-zheng/

springboot使用validation 插件做數據校驗