java注解驗證接收參數 返回注解字段的錯誤


1。在controller接口方法接收參數加上

@Valid注解 並且在實體類參數后緊跟 BindingResult bindingresul

 

 BindingResultMsgUtil工具類:

public class BindingRequestMsgUtil {
/**
* 輸出bindingResult中的錯誤信息
* @param bindingResult
* @return
*/
public static ResultData bindingResultErrorMessage(BindingResult bindingResult,Class clz) {
ObjectError objectError = bindingResult.getAllErrors().get(0);
JSONObject resFiled1 = JsonUtil.objectToJsonObject(objectError);

String resFiled = resFiled1.get("field").toString();

Field declaredField = null;

try {
declaredField = clz.getDeclaredField(resFiled);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
MyFieldAnnotation declaredAnnotation = declaredField.getDeclaredAnnotation(MyFieldAnnotation.class);
String fieldNotes = "";
if (declaredAnnotation!=null){
fieldNotes = declaredAnnotation.fieldAnnotation();
}

return bindingResult != null && bindingResult.hasErrors()
? getStandardErrorJSONO(!StringUtils.isBlank(fieldNotes)
?fieldNotes+":"+bindingResult.getFieldError().getDefaultMessage():bindingResult.getFieldError().getDefaultMessage()) : null;
}


/**
* 獲取一個規定好格式了的json字符串, 出錯時的格式
* @param message 消息內容
* @return {"result":-1, "message":message}
*/
public static ResultData getStandardErrorJSONO(String message){
return getStandardErrorJSONO(message, null);
}


/**
* 獲取一個規定好格式了的json字符串, 出錯時的格式
* @param message 消息內容
* @param data data字段包含的數據
* @return {"result":-1, "message":message, "data":...}
*/
public static ResultData getStandardErrorJSONO(String message, Object data){
return getJSONO(0, message, data);
}


/**
* 獲取一個規定好格式了的json字符串
* @param statusCode 狀態碼
* @param message 消息內容
* @param data data字段包含的數據
* @return {"result":statusCode, "message":message, "data":...}
*/
public static ResultData getJSONO(int statusCode, String message, Object data){
return ResultData.returnData(statusCode,message,data);
}




}

 

 

 2.在實體類中添加注解@NotBlank   和自定義注解 @MyfieldAnnotation

 

 

 自定義注解類:

@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.FIELD})
public @interface MyFieldAnnotation {
String fieldAnnotation() default "";
}






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM