Package org.apache.struts2.validator.validators

# Class RepopulateConversionErrorFieldValidatorSupport

java.lang.Object
org.apache.struts2.validator.validators.ValidatorSupport
org.apache.struts2.validator.validators.FieldValidatorSupport
org.apache.struts2.validator.validators.RepopulateConversionErrorFieldValidatorSupport

All Implemented Interfaces:
  `FieldValidator`, `ShortCircuitableValidator`, `Validator`

Direct Known Subclasses:
  `ConversionErrorFieldValidator`

public abstract class RepopulateConversionErrorFieldValidatorSupport extends FieldValidatorSupport

An abstract base class that adds in the capability to populate the stack with a fake parameter map when a conversion error has occurred and the 'repopulateField' property is set to "true".

The capability of auto-repopulating the stack with a fake parameter map when a conversion error has occurred can be done with 'repopulateField' property set to "true".

This is typically useful when one wants to repopulate the field with the original value when a conversion error occurred. Eg. with a textfield that only allows an Integer (the action class have an Integer field declared), upon conversion error, the incorrectly entered integer (maybe a text 'one') will not appear when dispatched back. With 'repopulateField' property set to true, it will, meaning the textfield will have 'one' as its value upon conversion error.

     <!-- myJspPage.jsp -->
     <ww:form action="someAction" method="POST">
       ....
       <ww:textfield
           label="My Integer Field"
           name="myIntegerField" />
       ....
       <ww:submit />
     </ww:form>

     <!-- xwork.xml -->
     <xwork>
     <include file="xwork-default.xml" />
     ....
     <package name="myPackage" extends="xwork-default">
       ....
       <action name="someAction" class="example.MyActionSupport.java">
          <result name="input">myJspPage.jsp</result>
          <result>success.jsp</result>
       </action>
       ....
     </package>
     ....
     </xwork>

     <!-- MyActionSupport.java -->
     public class MyActionSupport extends ActionSupport {
        private Integer myIntegerField;

        public Integer getMyIntegerField() { return this.myIntegerField; }
        public void setMyIntegerField(Integer myIntegerField) {
           this.myIntegerField = myIntegerField;
        }
     }

     <!-- MyActionSupport-someAction-validation.xml -->
     <validators>
       ...
       <field name="myIntegerField">
          <field-validator type="conversion">
             <param name="repopulateField">true</param>
             <message>Conversion Error (Integer Wanted)</message>
          </field-validator>
       </field>
       ...
     </validators>

Author:
  tm_jee

- ## Field Summary

  ### Fields inherited from class org.apache.struts2.validator.validators.FieldValidatorSupport

  `currentValue, fieldName, type`

  ### Fields inherited from class org.apache.struts2.validator.validators.ValidatorSupport

  `defaultMessage, EMPTY_STRING, messageKey, stack, textProviderFactory`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RepopulateConversionErrorFieldValidatorSupport()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract void`
  `doValidate(Object object)`
  `protected String`
  `escape(String value)`
  `boolean`
  `isRepopulateField()`
  `void`
  `repopulateField(Object object)`
  `void`
  `setRepopulateField(boolean repopulateField)`
  `void`
  `validate(Object object)`
  The validation implementation must guarantee that setValidatorContext will be called with a non-null ValidatorContext before validate is called.

  ### Methods inherited from class org.apache.struts2.validator.validators.FieldValidatorSupport

  `getCurrentValue, getFieldName, getValidatorType, setFieldName, setValidatorType`

  ### Methods inherited from class org.apache.struts2.validator.validators.ValidatorSupport

  `addActionError, addFieldError, getDefaultMessage, getFieldValue, getMessage, getMessageKey, getMessageParameters, getValidatorContext, isShortCircuit, parse, setDefaultMessage, setMessageKey, setMessageParameters, setShortCircuit, setTextProviderFactory, setValidatorContext, setValueStack`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.struts2.validator.Validator

  `getDefaultMessage, getMessage, getMessageKey, getMessageParameters, getValidatorContext, setDefaultMessage, setMessageKey, setMessageParameters, setValidatorContext, setValueStack`

- ## Constructor Details

  - ### RepopulateConversionErrorFieldValidatorSupport

    public RepopulateConversionErrorFieldValidatorSupport()

- ## Method Details

  - ### isRepopulateField

    public boolean isRepopulateField()

  - ### setRepopulateField

    public void setRepopulateField(boolean repopulateField)

  - ### validate

    public void validate(Object object) throws ValidationException
    Description copied from interface: `Validator`
    The validation implementation must guarantee that setValidatorContext will be called with a non-null ValidatorContext before validate is called.
    Parameters:
      `object` - the object to be validated.
    Throws:
      `ValidationException` - is thrown if there is validation error(s).

  - ### repopulateField

    public void repopulateField(Object object) throws ValidationException
    Throws:
      `ValidationException`

  - ### escape

    protected String escape(String value)

  - ### doValidate

    protected abstract void doValidate(Object object) throws ValidationException
    Throws:
      `ValidationException`