zoukankan      html  css  js  c++  java
  • 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 "";
    }





  • 相关阅读:
    什么是经验
    Linux驱动开启调试信息
    insecticide|contradictions| at large|delay doing|
    timber|stain|compensate|
    whip|resist|patch|intimate|
    chop|divorce|harsh|mutual|compel|
    crack|erosion|strip|
    stack|session|fuss|anniversary
    abrupt|promising
    nevertheless|magnificent |prosperous|
  • 原文地址:https://www.cnblogs.com/cw828/p/14125199.html
Copyright © 2011-2022 走看看