Class WValidator

  • Direct Known Subclasses:
    AbstractPasswordService.AbstractStrengthValidator, WDateValidator, WDoubleValidator, WEmailValidator, WIntValidator, WLengthValidator, WRegExpValidator, WStackedValidator

    public class WValidator
    extends java.lang.Object
    A validator is used to validate user input according to pre-defined rules.

    A validator may be associated with a form widget using WFormWidget#setValidator().

    The validator validates the user input. A validator may have a split implementation to provide both validation at the client-side (which gives instant feed-back to the user while editing), and server-side validation (to be sure that the client was not tampered with). The feed-back given by (client-side and server-side) validation is reflected in the style class of the form field: a style class of Wt-invalid is set for a field that is invalid.

    This WValidator only checks that mandatory fields are not empty. This class is reimplemented in WDateValidator, WIntValidator, WDoubleValidator, WLengthValidator and WRegExpValidator. All these validators provide both client-side and server-side validation.

    If these validators are not suitable, you can inherit from this class, and provide a suitable implementation to validate() which does the server-side validation. If you want to provide client-side validation for your own validator, you may also reimplement getJavaScriptValidate().

    i18n

    The strings used in this class can be translated by overriding the default values for the following localization keys:

    • Wt.WValidator.Invalid: This field cannot be empty

    See Also:
    WFormWidget
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  WValidator.Result
      A class that holds a validation result.
    • Constructor Summary

      Constructors 
      Constructor Description
      WValidator()
      Creates a new validator.
      WValidator​(boolean mandatory)
      Creates a new validator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getFormat()
      Returns the validator format.
      java.lang.String getInputFilter()
      Returns a regular expression that filters input.
      WString getInvalidBlankText()
      Returns the message displayed when a mandatory field is left blank.
      java.lang.String getJavaScriptValidate()
      Creates a Javascript object that validates the input.
      boolean isMandatory()
      Returns if input is mandatory.
      void setInvalidBlankText​(java.lang.CharSequence text)
      Sets the message to display when a mandatory field is left blank.
      void setMandatory​(boolean mandatory)
      Sets if input is mandatory.
      WValidator.Result validate​(java.lang.String input)
      Validates the given input.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WValidator

        public WValidator​(boolean mandatory)
        Creates a new validator.

        Indicate whether input is mandatory.

        See Also:
        setMandatory(boolean mandatory)
      • WValidator

        public WValidator()
        Creates a new validator.

        Calls this(false)

    • Method Detail

      • setMandatory

        public void setMandatory​(boolean mandatory)
        Sets if input is mandatory.

        When an input is not mandatory, then an empty field is always valid.

      • isMandatory

        public boolean isMandatory()
        Returns if input is mandatory.
      • setInvalidBlankText

        public void setInvalidBlankText​(java.lang.CharSequence text)
        Sets the message to display when a mandatory field is left blank.

        The default value is "This field cannot be empty".

      • validate

        public WValidator.Result validate​(java.lang.String input)
        Validates the given input.

        Note: The signature for this method changed in JWt 3.2.0.

      • getFormat

        public java.lang.String getFormat()
        Returns the validator format.

        The default implementation returns an empty string.

      • getJavaScriptValidate

        public java.lang.String getJavaScriptValidate()
        Creates a Javascript object that validates the input.

        The JavaScript expression should evaluate to an object which contains a validate(text) function, which returns an object that contains the following two fields:

        • fields: a boolean valid,
        • a message that indicates the problem if not valid.

        Returns an empty string if the validator does not provide a client-side validation implementationq.

        See Also:
        getInputFilter()
      • getInputFilter

        public java.lang.String getInputFilter()
        Returns a regular expression that filters input.

        The returned regular expression is used to filter keys presses. The regular expression should accept valid single characters.

        For details on valid regular expressions, see WRegExpValidator. As an example, "[0-9]" would only accept numbers as valid input.

        The default implementation returns an empty string, which does not filter any input.

        See Also:
        getJavaScriptValidate()