Re: Nested form validation

2004-12-10 Thread Hubert Rabago
I would think so, but you'd have to call Validator yourself.  Take a
look at how the ValidatorForm#validate() calls it, and base your
nested.validate() code on that.  After the call, append the errors
from your main form and those in your nested form.

On Fri, 10 Dec 2004 10:41:36 +1100, Ben [EMAIL PROTECTED] wrote:
 If I do this, can I use Struts validators and my custom validate method?
 
 
 
 
 On Thu, 9 Dec 2004 16:08:03 -0600, Hubert Rabago [EMAIL PROTECTED] wrote:
  Why not call nested.validate() inside NormalForm#validate(), then add
  the appropriate ActionMessage objects in the resulting ActionErrors?
 
 
 
 
  On Fri, 10 Dec 2004 08:57:17 +1100, Ben [EMAIL PROTECTED] wrote:
   Hi
  
   Within my normal form there is a nested form. The nested form has
   custom validation. The validate attribute of the action is set to
   false. My question is how do I validate the normal form and
   automatically validate the nested form with my custom validation
   method?
  
   E.g.
  
   NormalForm () {
   NestedForm nested = new NestedForm();
   }
  
   NestedForm () {
   validate(...) {
   // checking the data here
   }
   }
  
   So my action would validate the form as:
  
   MyAction () {
   NormalForm nForm = (NormalForm) form;
   ActionErrors errors = nForm.validate(); // Validate the data
   }
  
   The problem here is that it validates the NormalForm and ignores my
   validation in the NestedForm.
  
   I hope this question makes sense to you... :)
  
   Thanks,
   Ben
  
   -
 
 
   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]



Re: Nested form validation

2004-12-10 Thread Ben
Thanks, I am doing just that.

Just a quick question, how do I use the property name as the error key
in the validate() method?

I have this but it uses the form name as the key, not the name of the
property currently validating.

public ActionErrors validate(ActionMapping mapping, HttpServletRequest
request) {
 ActionErrors errors = new ActionErrors();
 String validationKey = getValidationKey(mapping, request);
 
 errors.add(validationKey, new ActionMessage(errors.input));
 
 return errors;
}

Thanks

On Fri, 10 Dec 2004 09:34:26 -0600, Hubert Rabago [EMAIL PROTECTED] wrote:
 I would think so, but you'd have to call Validator yourself.  Take a
 look at how the ValidatorForm#validate() calls it, and base your
 nested.validate() code on that.  After the call, append the errors
 from your main form and those in your nested form.
 
 
 
 On Fri, 10 Dec 2004 10:41:36 +1100, Ben [EMAIL PROTECTED] wrote:
  If I do this, can I use Struts validators and my custom validate method?
 
 
 
 
  On Thu, 9 Dec 2004 16:08:03 -0600, Hubert Rabago [EMAIL PROTECTED] wrote:
   Why not call nested.validate() inside NormalForm#validate(), then add
   the appropriate ActionMessage objects in the resulting ActionErrors?
  
  
  
  
   On Fri, 10 Dec 2004 08:57:17 +1100, Ben [EMAIL PROTECTED] wrote:
Hi
   
Within my normal form there is a nested form. The nested form has
custom validation. The validate attribute of the action is set to
false. My question is how do I validate the normal form and
automatically validate the nested form with my custom validation
method?
   
E.g.
   
NormalForm () {
NestedForm nested = new NestedForm();
}
   
NestedForm () {
validate(...) {
// checking the data here
}
}
   
So my action would validate the form as:
   
MyAction () {
NormalForm nForm = (NormalForm) form;
ActionErrors errors = nForm.validate(); // Validate the data
}
   
The problem here is that it validates the NormalForm and ignores my
validation in the NestedForm.
   
I hope this question makes sense to you... :)
   
Thanks,
Ben
   
-
  
  
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]
 


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



Nested form validation

2004-12-09 Thread Ben
Hi

Within my normal form there is a nested form. The nested form has
custom validation. The validate attribute of the action is set to
false. My question is how do I validate the normal form and
automatically validate the nested form with my custom validation
method?

E.g.

NormalForm () {
NestedForm nested = new NestedForm();
}

NestedForm () {
validate(...) {
// checking the data here
}
}

So my action would validate the form as:

MyAction () {
NormalForm nForm = (NormalForm) form;
ActionErrors errors = nForm.validate(); // Validate the data
}

The problem here is that it validates the NormalForm and ignores my
validation in the NestedForm.

I hope this question makes sense to you... :)

Thanks,
Ben

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



Re: Nested form validation

2004-12-09 Thread Matt Bathje
Are you talking something like
form
  input type=text name=bla
  form
input type=text name=form2bla
  /form
/form
If so, then its most likely not possible. Furthermore, it is not 
standard HTML, and not guaranteed to work on any browser - whatever you 
are doing with nested forms needs to be rethought so as not to use them.

If that is not what you are talking about, we may need further 
explanation (with possibly a sample of the form...)

Matt

Ben wrote:
Hi
Within my normal form there is a nested form. The nested form has
custom validation. The validate attribute of the action is set to
false. My question is how do I validate the normal form and
automatically validate the nested form with my custom validation
method?
E.g.
NormalForm () {
NestedForm nested = new NestedForm();
}
NestedForm () {
validate(...) {
// checking the data here
}
}
So my action would validate the form as:
MyAction () {
NormalForm nForm = (NormalForm) form;
ActionErrors errors = nForm.validate(); // Validate the data
}
The problem here is that it validates the NormalForm and ignores my
validation in the NestedForm.
I hope this question makes sense to you... :)
Thanks,
Ben
-
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]


Re: Nested form validation

2004-12-09 Thread Hubert Rabago
Why not call nested.validate() inside NormalForm#validate(), then add
the appropriate ActionMessage objects in the resulting ActionErrors?


On Fri, 10 Dec 2004 08:57:17 +1100, Ben [EMAIL PROTECTED] wrote:
 Hi
 
 Within my normal form there is a nested form. The nested form has
 custom validation. The validate attribute of the action is set to
 false. My question is how do I validate the normal form and
 automatically validate the nested form with my custom validation
 method?
 
 E.g.
 
 NormalForm () {
 NestedForm nested = new NestedForm();
 }
 
 NestedForm () {
 validate(...) {
 // checking the data here
 }
 }
 
 So my action would validate the form as:
 
 MyAction () {
 NormalForm nForm = (NormalForm) form;
 ActionErrors errors = nForm.validate(); // Validate the data
 }
 
 The problem here is that it validates the NormalForm and ignores my
 validation in the NestedForm.
 
 I hope this question makes sense to you... :)
 
 Thanks,
 Ben
 
 -
 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]



Re: Nested form validation

2004-12-09 Thread Ben
I meant this:

form
  input type=text name=name value=$name
  input type=text name=city value=$address.city
  input type=text name=zipcode value=$address.zipcode
  input type=text name=country value=$address.country
/form

UserForm () {
String name;
AddressForm address = new AddressForm();
}

AddressForm () {
String city;
String zipcode;
String country;

validate(...) {
// validate the address
}
}

UserAction () {
UserForm userForm = (UserForm) form;
ActionErrors errors = userForm.validate(); // Manually validate the data
}

When I call the validate method in my action to validate the userForm,
I would like it to validate the addressForm as well (with my custom
validate method).

Can I do something like this?

ActionErrors errors = userForm.validate(); // Validate the userForm
errors = userForm.address.validate(); // Validate the addressForm

So the errors variable would contains errors in userForm and addressForm.

Thanks,
Ben


On Thu, 09 Dec 2004 16:01:12 -0600, Matt Bathje [EMAIL PROTECTED] wrote:
 Are you talking something like
 
 form
input type=text name=bla
form
  input type=text name=form2bla
/form
 /form
 
 If so, then its most likely not possible. Furthermore, it is not
 standard HTML, and not guaranteed to work on any browser - whatever you
 are doing with nested forms needs to be rethought so as not to use them.
 
 If that is not what you are talking about, we may need further
 explanation (with possibly a sample of the form...)
 
 Matt
 
 
 
 
 Ben wrote:
  Hi
 
  Within my normal form there is a nested form. The nested form has
  custom validation. The validate attribute of the action is set to
  false. My question is how do I validate the normal form and
  automatically validate the nested form with my custom validation
  method?
 
  E.g.
 
  NormalForm () {
  NestedForm nested = new NestedForm();
  }
 
  NestedForm () {
  validate(...) {
  // checking the data here
  }
  }
 
  So my action would validate the form as:
 
  MyAction () {
  NormalForm nForm = (NormalForm) form;
  ActionErrors errors = nForm.validate(); // Validate the data
  }
 
  The problem here is that it validates the NormalForm and ignores my
  validation in the NestedForm.
 
  I hope this question makes sense to you... :)
 
  Thanks,
  Ben
  
  -
  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]
 


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



Re: Nested form validation

2004-12-09 Thread Matt Bathje
Ben wrote:
I meant this:
form
  input type=text name=name value=$name
  input type=text name=city value=$address.city
  input type=text name=zipcode value=$address.zipcode
  input type=text name=country value=$address.country
/form
UserForm () {
String name;
AddressForm address = new AddressForm();
}
AddressForm () {
String city;
String zipcode;
String country;
validate(...) {
// validate the address
}
}
UserAction () {
UserForm userForm = (UserForm) form;
ActionErrors errors = userForm.validate(); // Manually validate the data
}
When I call the validate method in my action to validate the userForm,
I would like it to validate the addressForm as well (with my custom
validate method).
Can I do something like this?
ActionErrors errors = userForm.validate(); // Validate the userForm
errors = userForm.address.validate(); // Validate the addressForm
So the errors variable would contains errors in userForm and addressForm.
Thanks,
Ben
Ben - I think you have it mostly correct, except that the call to 
userForm.address.validate(); should APPEND to errors, not overwrite it 
by using an equal sign.

Hopefully somebody will correct anything else that won't work :)
Matt
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]