Java 如何将参数传递给errors.rejectValue(),它是SpringMVC3中ResourceBundle的另一个属性?

Java 如何将参数传递给errors.rejectValue(),它是SpringMVC3中ResourceBundle的另一个属性?,java,spring-mvc,Java,Spring Mvc,我想传递ResourceBundle的(globalmessage.properties)属性名“atm.number”而不是硬编码文本“Número de cajero”作为“errors.required”属性的参数。在验证器中我将如何做到这一点 ReporteIncidenciaValidator(验证器): public class ReporteIncidenciaValidator implements Validator { public boolean supports

我想传递ResourceBundle的(globalmessage.properties)属性名“atm.number”而不是硬编码文本“Número de cajero”作为“errors.required”属性的参数。在验证器中我将如何做到这一点

ReporteIncidenciaValidator(验证器):

public class ReporteIncidenciaValidator implements Validator {

    public boolean supports(Class<?> clazz) {
        return ReporteIncidencia.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) {
        ReporteIncidencia reporteIncidencia = (ReporteIncidencia) target;
        if (StringUtils.isBlank(reporteIncidencia.getNumeroCajero())) {
            errors.rejectValue("numeroCajero", "errors.required",
                new Object[]{"Número de cajero"}, "");
        }

    }
}
errors.required={0} es requerido.
atm.number=Número de cajero
servlet context.xml:

public class ReporteIncidenciaValidator implements Validator {

    public boolean supports(Class<?> clazz) {
        return ReporteIncidencia.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) {
        ReporteIncidencia reporteIncidencia = (ReporteIncidencia) target;
        if (StringUtils.isBlank(reporteIncidencia.getNumeroCajero())) {
            errors.rejectValue("numeroCajero", "errors.required",
                new Object[]{"Número de cajero"}, "");
        }

    }
}
errors.required={0} es requerido.
atm.number=Número de cajero



一种简单的方法是使用ApplicationContext类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename">
            <value>locale\messages</value>
        </property>
    </bean>

</beans>

public class ReporteIncidenciaValidator implements Validator, ApplicationContextAware  {
    private ApplicationContext ctx;


    public boolean supports(Class<?> clazz) {
        return ReporteIncidencia.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) {
        String message = context.getMessage("yourKey", 
                new Object[] { }, Locale.US);
        // your code

    }
}

区域设置\消息
公共类ReporteIncidenciaValidator实现验证器,ApplicationContextAware{
私有应用上下文ctx;
公共布尔支持(类clazz){
返回报告incidencia.class.isAssignableFrom(clazz);
}
公共无效验证(对象目标、错误){
String message=context.getMessage(“yourKey”,
新对象[]{},Locale.US);
//你的代码
}
}

@alfredo osorio您可以使用rejectValue(org.springframework.validation.Errors)
Errors.rejectValue(字段,errorCode,新对象[]{“args”},defaultMessage)