You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by my...@arcor.de on 2010/07/01 16:08:37 UTC

ExtVal: Validating an objects attributes if at least one these has a value

Hi at all,

I have the following use case simplified with an object 'Address' including zip, city and so on using BeanValidation:

public class Address {

  @NotNull(Create.class)
  @Size(min=3, max=10)
  private String zip;

  @NotNull
  @Size(min=3, max=50)
  private String city;

...
}

This class should be used in two pages: for creating an address (both attributes need to be set, group=Create) and to find an address (city is sufficient for searching, group=default).

In addition I want to reuse the address definition in pages to submit or search an order with both a home address and an optional invoice address. The problem is: if no value is entered into the fields for the invoice address, it should not be validated at all. If at least one field is filled, all constraints have to be validated, additionally considering groups to be used.

I think with bean validation only this is not possible, that's why I guess I have to use ExtVal again but don't know where to start. A custom validation strategy would be a choice, perhaps @SkipValidation offers another way to go? Or can it be done even easier (settings remain unchanged: single class as central point for validation rules which is reusabe in different use cases, validation should take place in validation phase)?

Can you give me some advice where to start?

Thanks,
Tom



-- 
Hotelbewertung: Bloß nicht die Katze im Sack kaufen bzw. den Floh auf der Matratze buchen - 
ob geschäftlich oder privat - erst das Hotel im Reise-Channel auf arcor.de checken!
http://www.arcor.de/rd/footer.hotel


Re: ExtVal: Validating an objects attributes if at least one these has a value

Posted by Gerhard Petracek <ge...@gmail.com>.
hi tom,

in this special case the usage of @SkipValidation wouldn't lead to a nice
solution.

in case of bv + extval: there is a new add-on [1] for bv based
multi-field-validation.
however, also with this new prototype you would need group-validation (for
this special case) to bypass the constraints hosted at the targets of the
value-bindings.

regards,
gerhard

[1]
http://os890.blogspot.com/2010/06/multi-field-form-validation-with-jsr.html

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2010/7/1 <my...@arcor.de>

> Hi at all,
>
> I have the following use case simplified with an object 'Address' including
> zip, city and so on using BeanValidation:
>
> public class Address {
>
>  @NotNull(Create.class)
>  @Size(min=3, max=10)
>  private String zip;
>
>  @NotNull
>  @Size(min=3, max=50)
>  private String city;
>
> ...
> }
>
> This class should be used in two pages: for creating an address (both
> attributes need to be set, group=Create) and to find an address (city is
> sufficient for searching, group=default).
>
> In addition I want to reuse the address definition in pages to submit or
> search an order with both a home address and an optional invoice address.
> The problem is: if no value is entered into the fields for the invoice
> address, it should not be validated at all. If at least one field is filled,
> all constraints have to be validated, additionally considering groups to be
> used.
>
> I think with bean validation only this is not possible, that's why I guess
> I have to use ExtVal again but don't know where to start. A custom
> validation strategy would be a choice, perhaps @SkipValidation offers
> another way to go? Or can it be done even easier (settings remain unchanged:
> single class as central point for validation rules which is reusabe in
> different use cases, validation should take place in validation phase)?
>
> Can you give me some advice where to start?
>
> Thanks,
> Tom
>
>
>
> --
> Hotelbewertung: Bloß nicht die Katze im Sack kaufen bzw. den Floh auf der
> Matratze buchen -
> ob geschäftlich oder privat - erst das Hotel im Reise-Channel auf arcor.dechecken!
> http://www.arcor.de/rd/footer.hotel
>
>