BaseValidator

import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

public abstract class BaseValidator {
    
    protected static Messages getMessages(ServletRequestAttributes servletRequestAttributes) {

        Messages messages = 
            (Messages) servletRequestAttributes.getAttribute(
                    FieldValidationConstants.MESSAGES, 
                    RequestAttributes.SCOPE_REQUEST);
        
        if (messages == null) {
            messages = new Messages();
        }
        
        return messages;
    }
    
    /**
     * Add field error message to request attribute 
     * @param fieldErrorParam    Field error tag parameter
     * @param fieldErrorMessage  Field error message
     */
    protected static void addFieldErrorMessage(String fieldErrorParam, String fieldErrorMessage) {
        
        if (!Util.isEmpty(fieldErrorParam) && !Util.isEmpty(fieldErrorMessage)) {
            ServletRequestAttributes servletRequestAttributes = 
                (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
            
            Messages messages = BaseValidator.getMessages(servletRequestAttributes);
            
            messages.addFieldErrorMessage(fieldErrorParam, fieldErrorMessage);
            
            servletRequestAttributes.setAttribute(FieldValidationConstants.MESSAGES, 
                    messages, RequestAttributes.SCOPE_REQUEST);
        }
    }
}

 

你可能感兴趣的:(BaseValidator)