All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gallery.db.util.DataBaseBindingResultUtil Maven / Gradle / Ivy

package io.gallery.db.util;

import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;

import java.util.*;

/**
 * 数据绑定异常工具类
 */
public class DataBaseBindingResultUtil {

    private DataBaseBindingResultUtil() {
    }

    public static Object getErrorMessages(BindingResult bindingResult) {
        if (bindingResult == null) {
            return null;
        }

        Map root = new HashMap<>();
        if (bindingResult.hasErrors()) {
            root.put("success", false);
            root.put("globalErrors", getGlobalErrors(bindingResult));
            root.put("fieldErrors", getFieldErros(bindingResult));
        } else {
            root.put("success", true);
        }

        return root;
    }

    /**
     * 设置全局错误
     *
     * @param bindingResult BindingResult
     * @return List
     */
    public static List getGlobalErrors(BindingResult bindingResult) {
        List globalErrors = new ArrayList<>();
        for (ObjectError oe : bindingResult.getGlobalErrors()) {
            globalErrors.add(oe.getDefaultMessage());
        }
        return globalErrors;
    }

    /**
     * 设置字段属性错误
     *
     * @param bindingResult BindingResult
     * @return Map
     */
    public static Map> getFieldErros(BindingResult bindingResult) {
        Map> fieldErrors = new HashMap<>();
        for (FieldError fe : bindingResult.getFieldErrors()) {
            String f = fe.getField();

            if (fieldErrors.get(f) != null) {
                fieldErrors.get(f).add(fe.getDefaultMessage());
            } else {
                List list = new LinkedList<>();
                list.add(fe.getDefaultMessage());
                fieldErrors.put(f, list);
            }
        }
        return fieldErrors;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy