Hi
Thanks for all answers. Finally i created 2 new validators: skipNextIf and
gotoNextIf.
They both test some expression which is passed in var-value parameter and if
the expression is evaluated to true,
skipNextIf return false and gotoNextIf return true. As you can imagine, i do
not add any entries to Errors in these validators .
They just work only as some kind of gateway which can break the the
validation  chain for a property.
                          milus

2006/4/28, Chaudhary, Harsh <[EMAIL PROTECTED]>:

You could write a custom validator which would read the value of the
documentIdentity. Then,

If
documentIdentity != "pazport", return true
else
-- Run your mask validation for passport number --

To do the mask validation, from your class, consult this:
http://struts.apache.org/struts-action/struts-core/apidocs/index.html

Look for a method: validateMask()

Harsh.

-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
Sent: Friday, April 28, 2006 4:37 PM
To: user@struts.apache.org
Subject: Re: complex validation problem.


Jakub Milkiewicz wrote:
> Hi
> I have a problem with conditional validation. Currently i am working
with
> struts 1.1 - because of its WSAD support but i am thinking of
migrating to
> the newest one.
> My problem is that on my jsp page i have 2 radio buttons:
> <html:radio name="viewBean"  property="documentIdentity"
value="dowod"/>
> <html:radio name="viewBean"  property="documentIdentity"
value="paszport"/>
> I am using struts validator and in my validation.xml i want to have
> passportNumber property validated IF AND ONLY IF documentIdentity
equals
> paszport.
> More, i want to have it validated with other validators too.
> I need something like:
> <field property="passportNumber"
>              depends="requiredif,mask" page="1">
>                  <var>
>                       <var-name>field[0]</var-name>
>                         <var-value>documentIdentity</var-value>
>                       </var>
>                       <var>
>                         <var-name>fieldTest[0]</var-name>
>                         <var-value>EQUAL</var-value>
>                       </var>
>                       <var>
>                         <var-name>fieldValue[0]</var-name>
>                         <var-value>paszport</var-value>
>                       </var>
>                       <var>
>                        <var-name>mask</var-name>
>                        <var-value>${passportNumberMask}</var-value>
>                      </var>
>         </field>
> So if documentIdentity.equals paszport, passportNumber  is required
and
> needs to be validated against mask validator.
> If doucmentIdentity eqauls dowod, i do not wanna to validate
passportNumber
> at all.
> Can struts validator satisfy my requirements? Can struts 1.1 validator
> satisfy it??
> I have spent a lot of time on struts mailing list trying to find an
answer
> for my problem but i haven't found anything special.
> Maybe solution presented in
> http://marc.theaimsgroup.com/?l=struts-user&m=113029818225923&w=2
> is suggested in Struts.
> Can anyone help me.

Unfortunately the validation framework doesn't support this requirement
directly; when you say depends="requiredif,mask", this is taken to mean
'the field is valid if it passed the requiredif test AND it passes the
mask test'. There's no way to have a requiredif/validwhen rule control
whether another rule is applied.

The message you referenced in the archives looks like a good starting
point to achieve what you want. Essentially, you will need to write your

own validation rule. That message looks like it details a reasonably
flexible basis for doing so.

L.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to