CustomValidator

0 respostas
leohunther

Fala gente boa,
Estou tentando criar uma validação customizada, até tudo bem.
Aí vai o código:

public class ValidadorDataNasc extends FieldValidatorSupport{

	private int a,atual;
	private Date d;
	private String min,max;
		
	@Override
	public void validate(Object obj) throws ValidationException {
		String nomeCampo = getFieldName();
		Date campo = (Date)this.getFieldValue(nomeCampo, obj);
		try{
			SimpleDateFormat dataForm = new SimpleDateFormat("dd/MM/yyyy");
			try{
				String dt = dataForm.format(campo);
				d = dataForm.parse(dt);
				Date hoje = new Date();
				GregorianCalendar cal = new GregorianCalendar();
				cal.setTime(hoje);
				atual = cal.get(Calendar.YEAR);
				cal.setTime(d);			
				a = cal.get(Calendar.YEAR);
				//se ano maior que 1994
				if((a > atual-15) ||(a < atual-120)){
					addFieldError(nomeCampo, obj);
					String inicio = String.valueOf(atual-119);
					String fim = String.valueOf(atual-16);
					setMin("01/01/"+inicio);
					setMax("31/12/"+fim);
				}//fim if
				//se data errada
			}//try
			catch(NullPointerException er){
				addFieldError(nomeCampo, obj);
			}//catch
		}//fim try
		catch(ParseException e){
			addFieldError(nomeCampo, obj);
		}//fim catch
	}//fim do validate

	public String getMin() {
		return min;
	}

	public void setMin(String min) {
		this.min = min;
	}

	public String getMax() {
		return max;
	}

	public void setMax(String max) {
		this.max = max;
	}

	
	
}//fim da classe

Na minha classe action eu coloquei a validação:

@RequiredFieldValidator(message="Favor digite a data de nascimento")
	@CustomValidator(message="Data errada! Digite uma data entre ${min} e ${max} ",type="validadorData")
	public Date getDtNascimento() {
		return dtNascimento;
	}

Na classe customizada eu criei dois atributos min e max e seus respectivos getts e setts.
Então eu deveria poder pegá-los mas não dá certo, simplismente não aparece nenhum valor para as chamadas
${min} e ${max}, só aparece a frase:

Sem os valores dos atributos.
Já tentei extender a classe de DateRangeFieldValidator mas também acontece a mesma coisa.
Se alguém tiver uma idéia eu agradeço.
Valeu

Criado 23 de outubro de 2008
Respostas 0
Participantes 1