On Thu, 19 Mar 2015 04:08:05 -0300, Andrea Cerfogli <a.cerfo...@gmail.com> wrote:


Hello,

Hi!

I'm using Tapestry 5.4 beta 27 on java 1.7.0_76 with Windows 8.1.
I'm not sure this is the right place where describe a potential bug.

I believe this should have been posted to the users mailing list first.

I put my very simplified class.

I have an entity with two Date fields:
@Entity

@Table(name = "testparent", schema = "phoenix")

public class TestParent implements Serializable{

@Property
@ValidateDb (name="V1")
@Column(name = "F7dateReq")
public Date f7datereq;

@Property
@ValidateDb (name="V2")
@Column(name = "F14datetimeReq")
public Date f14datetimeReq;
}

and a custom ValidateDb ConstraintValidator that ensure that date values are mandatory:


@Constraint(validatedBy = ValidateDbValidator.class)
@Target({ METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Documented
public @interface ValidateDb {
   String message() default "{com.acme.constraint.Range.message}";

   Class<?>[] groups() default {};

   Class<? extends Payload>[] payload() default {};

   String name() default "";
}


public class ValidateDbValidator implements ConstraintValidator<ValidateDb, Object> {
@Override
   public void initialize(ValidateDb constraintAnnotation) {
   }

public boolean isValid(Object value, ConstraintValidatorContext context) {
       String errorMessage=null;        if (value==null)
     errorMessage="{validateDb.constraint.notNull}";

context.disableDefaultConstraintViolation(); if (errorMessage==null || "".equals(errorMessage.trim()))
    {
     context.buildConstraintViolationWithTemplate("").addConstraintViolation();
     return true;         }
    else
    {
     
context.buildConstraintViolationWithTemplate(errorMessage).addConstraintViolation();
     return false;
    }
   }
}


I'm using the standard bean edit form and when I press the "Save" button, the alert message appears in this way In other words I get just one message referring the wrong input component while I should get two distinct error messages, >one for each field.

If I use two String fields instead of date fields, the messages are right






--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

Reply via email to