• 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 "";
    }





  • 相关阅读:
    rsyslog
    java实现黄金分割数
    java实现黄金分割数
    java实现黄金分割数
    java实现黄金分割数
    java实现黄金分割数
    java实现低碳生活大奖赛
    java实现低碳生活大奖赛
    java实现低碳生活大奖赛
    java实现低碳生活大奖赛
  • 原文地址:https://www.cnblogs.com/cw828/p/14125199.html
Copyright © 2020-2023  润新知