Edit on GitHub << back to Validation

# Using Non Field Validators

## Description

The followings show a simple example using Struts’ Non Field Validators

## Create the jsp page

    <s:actionerror/>

    <s:form method="POST" action="submitNonFieldValidatorsExamples" namespace="/validation">
        <s:textfield name="someText" label="Some Text"/>
        <s:textfield name="someTextRetype" label="Retype Some Text"/>
        <s:textfield name="someTextRetypeAgain" label="Retype Some Text Again"/>
        <s:submit label="Submit" cssClass="btn btn-primary"/>
    </s:form>

## Create the action class

    public class NonFieldValidatorsExampleAction extends AbstractValidationActionSupport {

        private String someText;
        private String someTextRetype;
        private String someTextRetypeAgain;

        public String getSomeText() {
            return someText;
        }

        @StrutsParameter
        public void setSomeText(String someText) {
            this.someText = someText;
        }

        public String getSomeTextRetype() {
            return someTextRetype;
        }

        @StrutsParameter
        public void setSomeTextRetype(String someTextRetype) {
            this.someTextRetype = someTextRetype;
        }

        public String getSomeTextRetypeAgain() {
            return someTextRetypeAgain;
        }

        @StrutsParameter
        public void setSomeTextRetypeAgain(String someTextRetypeAgain) {
            this.someTextRetypeAgain = someTextRetypeAgain;
        }
    }

## Create the `validator.xml`.

    <validators>
        <validator type="expression">
            <param name="expression">
                <![CDATA[ ( (someText == someTextRetype) && (someTextRetype == someTextRetypeAgain) ) ]]></param>
            <message><![CDATA[ all three text must be exactly the same ]]></message>
        </validator>
    </validators>