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: [email protected]
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]