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