I'm a newbie so I don't know if the way I'm doing it is any better but here's how I'm doing it. Here's the controller part from my -servlet.xml file:
Code:
<bean id="adminSignInCtlr" class="ctlr.AdminSignInCtlr">
<property name="commandClass" value="view.AdminSignInFrmData" />
<property name="validator" ref="adminSignInValidate" />
<property name="formView" value="adminSignInView" />
<property name="adminView" value="fdebugView" />
<property name="waitlistView" value="waitlistView" />
<property name="sessionForm" value="false" />
<property name="bindOnNewForm" value="true" />
<property name="facilityDao" ref="facilityDao" />
<property name="wleDao" ref="wleDao" />
</bean>
For my controller the onSubmit is:
Code:
protected ModelAndView
onSubmit(Object cmd) {
AdminSignInFrmData sifd = (AdminSignInFrmData) cmd;
String view = sifd.getView();
Map<String,Object> model = new HashMap<String, Object>();
model.put("sifd", sifd);
model.put("platcnt", facilityDao.getPlatCount(sifd.getFacility()));
model.put("wlePc", wleDao.getWaitlistEntries(sifd.getFacility(), "pc"));
model.put("wleMac",wleDao.getWaitlistEntries(sifd.getFacility(),mac"));
if (view.equals("admin"))
return(new ModelAndView(adminView, "model", model));
if (view.equals("waitlist"))
return(new ModelAndView(waitlistView, "model", model));
/* oops */
return(new ModelAndView((String) null, "model", model));
}
And my validator is just like yours:
Code:
public void
validate(Object obj, Errors errs) {
ValidationUtils.rejectIfEmpty(errs,
"facility",
"err.facility",
"Facility?");
ValidationUtils.rejectIfEmpty(errs,
"view",
"err.view",
"View?");
ValidationUtils.rejectIfEmptyOrWhitespace(errs,
"password",
"err.password",
"Password?");
}
I think that the main difference is that I'm setting the validator in the -servlet.xml file and not calling it directly the way you are and it's being called automatically for me.