Пытаюсь прикрутить валидацию. Чето неработает  Никаких ошибок невыдает, просто форма очищается от данных и все. Создал класс DepartmentValidator, пока тока должен проверять введено ли название подразделения | Код | package springdb.validation; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; import springdb.model.Department;
public class DepartmentValidator implements Validator { public boolean supports(Class clazz){ return Department.class.isAssignableFrom(clazz); } public void validate(Object command, Errors errors){ ValidationUtils.rejectIfEmpty(errors, "departmentName", "required.departmentName", "DepartmentName is required"); } }
|
в спринговский файл конфигурации, в описалово данного контроллера добавил строчку | Код | <bean id="addDepartmentController" class="springdb.web.AddDepartmentController"> <property name="formView" value="addDepartment"/> <property name="successView" value="ownerRedirect"/> <property name="validator"><ref bean="departmentValidator"/></property> <property name="departmentService"><ref bean="departmentService"/></property> </bean>
<bean id="departmentValidator" class="springdb.validation.DepartmentValidator"/>
|
это сама jsp где вводятся данные | Код | <%@ include file="/WEB-INF/jsp/includes.jsp" %> <%@ page contentType="text/html; charset=windows-1251" %> <spring:bind path="command"> <FONT color="red"> <B><c:out value="${status.errorMessage}"/></B> </FONT> </spring:bind> <form method="POST"> <table border="0" cellspacing="5" cellpadding="0"> <tr><td valign="middle" align="left"> <b>Название подразделения: </b> </td><td valign="middle" align="left"> <spring:bind path="command.departmentName"> <input type="text" maxlength="50" size="50" name="departmentName"><br> </spring:bind> </td></tr> <tr><td valign="middle" align="right"> <b>Родительское подразделение: </b> </td><td valign="middle" align="left"> <spring:bind path="command.parentDid"> <select name="parentDid"> <c:forEach items="${parentDepartments}" var="parentDepartment"> <OPTION value="<c:out value="${parentDepartment.parentDid}"/>"> <c:out value="${parentDepartment.departmentName}"/> </OPTION> </c:forEach> </select> </spring:bind> </td></tr>
<tr> <td valign="middle" align="left"> <b>Тип подразделения: </b> </td> <td valign="middle" align="left"> <spring:bind path="command.depType"> <select name="depType"> <option selected value="1">Главный офис</option> <option value="2">Филиал</option> </select> <!-- input type="text" maxlength="50" name="depType" --><br> </spring:bind> </td> </tr> <tr> <td valign="middle" align="left"> <b>Банковкий счет:</b> </td> <td valign="middle" align="left"> <spring:bind path="command.account"> <input type="text" maxlength="100" size="80" name="account"><br> </spring:bind> </td> </tr> <tr> <td valign="middle" align="left"> <b>Банковкий код:</b> </td> <td valign="middle" align="left"> <spring:bind path="command.bankCode"> <input type="text" maxlength="50" size="50" name="bankCode"><br> </spring:bind> </td> </tr> <tr> <td valign="middle" align="left"> <b>УНН:</b> </td> <td valign="middle" align="left"> <spring:bind path="command.unn"> <input type="text" maxlength="50" name="unn"><br> </spring:bind> </td> </tr> <tr> <td valign="middle" align="left"> <b>Телефон:</b> </td> <td valign="middle" align="left"> <spring:bind path="command.telephone"> <input type="text" maxlength="50" name="telephone"><br> </spring:bind> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Create"> </td> </tr> </table> </form>
|
Сам контроллер | Код | package springdb.web; import java.util.HashMap; import java.util.Map;
import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.propertyeditors.CustomNumberEditor; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.servlet.mvc.SimpleFormController;
import springdb.model.Department; import springdb.service.DepartmentService;
public class AddDepartmentController extends SimpleFormController{ public AddDepartmentController(){ setSessionForm(true); setCommandName("command"); setCommandClass(Department.class); } protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { CustomNumberEditor numberEditor = new CustomNumberEditor(Integer.class, true); binder.registerCustomEditor(Integer.class, numberEditor); } protected Map referenceData(HttpServletRequest request) throws ServletException { Map refData = new HashMap(); refData.put("parentDepartments", this.departmentService.getDepartments()); return refData; } protected void doSubmitAction(Object command) throws Exception { departmentService.addDepartment((Department) command); } private DepartmentService departmentService; public void setDepartmentService(DepartmentService departmentService) { this.departmentService = departmentService; }
} Я вот думаю, может в методе doSubmitAction чето прописывать надо?
|
Это сообщение отредактировал(а) Adept - 24.1.2007, 14:34
|