Java Enterprise Turbine
JET Documentation
(If you feel that the documentation is too short, please create a bug report)
^4 Validation
^4.1 Client side
You can on each input field add validation rules. If you specify the type - e.g. here client the validation will be done server side and client side for security reasons.

<JetInput
id="password"
>

<validate
type="client" name="required"
/>

</JetInput>

possible validation types:
required
checked (same as required)
minlength (one argument required)
maxlength (one argument required)
match (one argument, the regex is required)
int
short
byte
creditcard
date
email
float
floatrange (two arguments min and max required)
intrange (two arguments min and max required)
validatewhen (one argument, the id of the related field required)

<JetFieldset
id="password"
>

<validate
type="client" name="checked"
>
<arg>
1
</arg>
</validate>

</JetFieldset>

possible validation types:
checked (one argument, how many checkboxes or radiobuttons are required)

Special validation messages could be set via the "messageKey" attribute.

^4.2 Action based
You can add action based validation if you implement jet.validation.JetValidation interface in your action. here you can write special action based validations or do more complex validations where you need database access etc.
^4.3 Form based
Form based validation could be added as under 4.1 described. form based validation is always done even the action has no validation. Only with the attribute "validate" set to "false" on the action definition you can suspress the form based validation for the action defined. The validation generates error messages and adds them to the message object of the action. If you wan't to react on the errors - like redisplaying the form you have to do this yourself. JET provides no general behave of exceptions or validation errors.