Home > Guides > Core Developers Guide > Annotations > Validations Annotation |
If you want to use several annotations of the same type, these annotations must be nested within the @Validations() annotation.
Used at METHOD level.
Parameter | Required | Notes |
---|---|---|
requiredFields | no |
Add list of RequiredFieldValidators | ||
customValidators | no | Add list of CustomValidators |
conversionErrorFields |
no | Add list of ConversionErrorFieldValidators | |
dateRangeFields | no | Add list of DateRangeFieldValidators |
emails | no | Add list of EmailValidators |
fieldExpressions | no | Add list of FieldExpressionValidators |
intRangeFields | no | Add list of IntRangeFieldValidators |
requiredStrings | no | Add list of RequiredStringValidators |
stringLengthFields | no | Add list of StringLengthFieldValidators |
urls | no | Add list of UrlValidators |
visitorFields | no | Add list of VisitorFieldValidators |
regexFields | no | Add list of RegexFieldValidator |
expressions | no | Add list of ExpressionValidator |
Different validations per method is NOT supported for client-side validation!
To use different validations per method, the validateAnnotatedMethodOnly property must be set on the validation interceptor.
<interceptor-ref name="validation"> <param name="validateAnnotatedMethodOnly">true</param> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref>
Here's a complete example of updating the default stack:
<package name="default" extends="struts-default"> <interceptors> <interceptor-stack name="content"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="debugging"/> <interceptor-ref name="profiling"/> <interceptor-ref name="scopedModelDriven"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="params"> <param name="excludeParams">dojo\..*</param> </interceptor-ref> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="validateAnnotatedMethodOnly">true</param> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="default"/> </package> </struts>