Validação personalizada pelo validator-rules

3 respostas
A

ae pessoal estava lendo o struts in action em ingles mais como tenho muitos dificuldades nessa lingua eu estou patinando um pouco. Eu criei um validador para validar um maximo e minimo no ano para uma propriedade data do meu form.
ele ficou assim:

public static boolean validateDateRangeYear(Object bean,
                                              ValidatorAction va,
                                              Field field,
                                              ActionErrors errors,
                                              HttpServletRequest request) {


    String valueDate = ValidatorUtil.getValueAsString(bean, field.getProperty());
    String sMin = field.getVarValue("min");
    String sMax = field.getVarValue("max");

    if (!GenericValidator.isBlankOrNull(valueDate))
    {
      try
      {
        String sDate = valueDate.substring(6,10);
        
        int intYear = Integer.parseInt(sDate);
        int min = Integer.parseInt(sMin);
        int max = Integer.parseInt(sMax);

        if (!GenericValidator.isInRange(intYear, min, max))
        {
          errors.add(field.getKey(), Resources.getActionError(request, va, field));

          return false;
        }
      }
      catch (Exception e)
      {
        errors.add(field.getKey(), Resources.getActionError(request, va, field));
        return false;
      }
    }

    return true;
  }

quando eu debugo ele eu vejo q ele esta funcionando e entra no if, porem fui perceber que esse metodo sempre recebe a variavel errors nula, ai quando ele vai dar um add ele da nullpointer, pq isso?? quem passa esses parametros para esse metodo???

3 Respostas

A

ah o struts q estou usando eh o 1.2.8

A

ae pessoal estava lendo a documentação de mudanças do struts 1.2.8 e descobri o erro vou deixar aqui para se alguem um dia tiver o mesmo problema…

na documentação ele fala que as validações personalizadas do struts 1.2.8 agora nao recebem mais um parametro do tipo ActionErrors como acontecia antigamento e como mostra no struts in action, agora ele recebe um paramentro do tipo ActionMessages.

eu fiz essa alteração ele ele esta funcionando normalmente. A unica curiosidade é que quando eu debugo esse paramentro ActionMessages ainda é um objeto ActionErrors… coisa d louco neh… mais tah valendo pq tah funcionando!!!

A

mais ainda tenho uma pergunta pessoal agora minha classe esta funcionando porem monte dos metodos estão depreciados pq?? quais metodos eu teria que usar no lugar???

exemplo: String valueDate = ValidatorUtil.getValueAsString(bean, field.getProperty()); errors.add(field.getKey(), Resources.getActionError(request, va, field));

Criado 27 de agosto de 2007
Ultima resposta 27 de ago. de 2007
Respostas 3
Participantes 1