Spring MVC parameter validation
- by Don
Hi,
I've defined a controller, validator and command class for a Spring 2.5 MVC application like this:
public class ResourceController extends AbstractCommandController {
    private MessageRetriever messageRetriever;
    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command,
            BindException errors) throws Exception {
        ResourceCommand resourceCommand = (ResourceCommand) command;
        // I NEED TO CHECK HERE IF COMMAND IS VALID?
    }
    public static class ResourceCommand {
        private String module;
        private String site;
        private String lang;
        // GETTERS AND SETTERS OMITTED
    }
    public static class ResourceValidator implements Validator {
        public boolean supports(Class clazz) {
            return ResourceCommand.class.isAssignableFrom(clazz);
        }
        public void validate(Object obj, Errors errors) {
            ValidationUtils.rejectIfEmptyOrWhitespace(errors, "module", "MODULE_REQUIRED");
            ValidationUtils.rejectIfEmptyOrWhitespace(errors, "site", "SITE_REQUIRED");
            ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lang", "LANG_REQUIRED");
        }
    }
}
I have wired these all together in the application context:
<bean id="resourceController" class="com.amadeus.jcp.ui.framework.localization.ResourceController">
    <property name="commandClass" value="com.amadeus.jcp.ui.framework.localization.ResourceController.ResourceCommand"/>
    <property name="validator">
        <bean class="com.amadeus.jcp.ui.framework.localization.ResourceController.ResourceValidator"/>
    </property>     
</bean>
However, I can't figure out how to actually check whether the command is valid or not - I assume the framework calls the validator, but how do I get access to the result?
Incidentally, I'm using Java 1.4, so can't use any solutions that require annotations or other Java 1.5 features.
Thanks,
Don