Home > Guides > Core Developers Guide > Annotations > UrlValidator Annotation |

Apache Struts 2 Documentation
UrlValidator Annotation
Edit Page Browse Space Add Page Add News

This validator checks that a field is a valid URL.

Usage

The annotation must be applied at method level.

Parameters

Parameter | Required | Default | Notes
--- | --- | --- | ---
message | yes |  | field error message
key | no |  | i18n key from language specific properties file
messageParams | no |  | additional params to be used to customize message - will be evaluated against the Value Stack
fieldName | no |  | field name under validation
shortCircuit | no | false | if this validator should be used as shortCircuit
urlRegex | no |  | defines regex to use to validate url
urlRegexExpression | no |  | defines regex as expression to validate url, expression will be evaluated against current stack to get proper regex
type | yes | ValidatorType.FIELD | Enum value from ValidatorType. Either FIELD or SIMPLE can be used here

Examples

UrlValidator usage example

    @UrlValidator(message = "Default message", key = "i18n.key", shortCircuit = true)

UrlValidator usage example

    @UrlValidator(message = "Default message", key = "i18n.key", urlRegexExpression = "${urlRegex}")

``urlRegex`` neither `urlRegexExpression` `are only used on client side to validate URLs - this will be changed with next major release!`

If no `urlRegex` neither `urlRegexExpression` is defined, default regex will be used instead, based on StackOverflow answer

Default URL regex

    return "^(https?|ftp):\/\/" +
           "(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+" +
           "(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)?" +
           "@)?(#?" +
           ")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*" +
           "[a-z][a-z0-9-]*[a-z0-9]" +
           "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}" +
           "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])" +
           ")(:\\d+)?" +
           ")(((\\/+([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*" +
           "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)" +
           "?)?)?" +
           "(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?" +
           "$";