In your validation.xml file (note you may have named it something else), when you're describing the field property of the form, if you don't specify "required" as one of the "depends" value, then that field will only be based on any other "depends" values you specify, so long as the field is not empty when submitted. If it's empty, it's not validated.
On a recent project, I didn't like the default email validator provided by the
Struts framework, so I wrote my own.
Here's what the logic looks like.
The call to isEmail simply checks the email address against a
pattern (using the java.util.regex engine).
The ValidatorAction and Field objects are generated by the Struts framework.
You'll need to register your custom validator by editing the validator-rules.xml file (which you may have named differently). In my case, I added the following global form-validation.
Does that answer your question(s)?