I am trying to validate a form so that field 'username' is 3 characters or
more. I have tried both xml configuration and annotations but seem to be
missing something on how it works. The form is working perfectly, ie all
properties on the class are being set. However the execute method is always
called and returns SUCCESS. Should the validation interceptor stop
invokation of the action and return Action.INPUT? Based on the S2 tutorials
i did everything required. Could the use of tiles be breaking it? Pls see
the source below.



This is my action-config:
==============================================================================

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd";>

<struts>

    <package name="search" namespace="/search" extends="compages-default">


        <action name="advancedSearch" class="advancedSearchAction">
            <result name="success"
type="tiles">search-advanced-search-logged-out.page.template</result>
            <interceptor-ref name="loggedOutStack" />
        </action>

        <action name="searchResults" class="searchResultsAction">
                <interceptor-ref name="validation" />
            <result name="success"
type="tiles">search-search-results-logged-out.page.template</result>
            <result name="input"
type="tiles">search-advanced-search-logged-out.page.template</result>

            <interceptor-ref name="loggedOutStack" />
        </action>

        <action name="simpleSearch" class="simpleSearchAction">
            <result name="success"
type="tiles">search-advanced-search-logged-out.page.template</result>
            <interceptor-ref name="loggedOutStack" />
        </action>

        <!-- Add actions here -->
    </package>
</struts>

==============================================================================

And the class
==============================================================================
@Validation()
public class SearchResultsAction extends ComPageAction implements
NavigationPage {

        private NavigationElements navigationElement;
        private NavigationManagement navigationManager;

        private String username;

        private int minimumAge;

        private int maximumAge;

        private boolean male;

        private boolean female;

        private String lastLogin;

        private boolean photoChatters;

        private String sortCriteria;

        public String execute() {


                return SUCCESS;
        }

        @Override
        public void setAcceptableParameters(List<String> acceptableParameters) {
                this.acceptableParameters = acceptableParameters;
        }

        public boolean acceptableParameterName(String param) {
                if (acceptableParameters != null )
                        return acceptableParameters.contains(param);
                else
                        return false;
        }

        public void setNavigationElement(NavigationManagement.NavigationElements
element) {
                this.navigationElement = element;
        }

        public List<NavigationElementBean> getNavigation() {
                try {
                        return 
navigationManager.createNavigation(navigationElement);
                } catch (NavigationException e) {
                        logger.error(e.getMessage(), e);
                        return null;
                }
        }

        public void setNavigationManagement(NavigationManagement manager) {
                this.navigationManager = manager;

        }

        public void setNavigationManager(NavigationManagement 
navigationManager) {
                this.navigationManager = navigationManager;
        }

        public void setMinimumAge(int minimumAge) {
                this.minimumAge = minimumAge;
        }

        public void setMaximumAge(int maximumAge) {
                this.maximumAge = maximumAge;
        }

        public void setMale(boolean male) {
                this.male = male;
        }

        public void setFemale(boolean female) {
                this.female = female;
        }

        public void setLastLogin(String lastLogin) {
                this.lastLogin = lastLogin;
        }

        public void setPhotoChatters(boolean photoChatters) {
                this.photoChatters = photoChatters;
        }

        public void setSortCriteria(String sortCriteria) {
                this.sortCriteria = sortCriteria;
        }

        public void setUsername(String username) {
                this.username = username;
        }

        @RequiredFieldValidator(type=ValidatorType.FIELD, message="username 
must be
provided")
        @StringLengthFieldValidator(fieldName="username", minLength="3",
message="no good")
        public String getUsername() {
                return username;
        }

}
==============================================================================


-- 
View this message in context: 
http://www.nabble.com/Troubles-getting-validation-to-work-tp15799918p15799918.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to