Мы используем spring-mvc версии 2.5. Я борюсь с концепцией загрузки второго раскрывающегося элемента управления, основанного на выборе первого раскрывающегося списка. Я бы на самом деле предпочел бы не включать в проект что-то вроде jQuery, если это вообще возможно. Я почти уверен, что это было выполнимо до jQuery.
Вот пример того, что я пытаюсь сделать:
Во-первых, начните с одного выпадающего списка, в котором есть список имен сотрудников, набранных по идентификаторам сотрудников.
Затем, сделав выбор из этого списка, загрузите и отобразите второй выпадающий список, в котором перечислены офисы, которые они набрали с помощью идентификатора офиса
Затем, наконец - сделайте выбор из второго списка (офисы) и отобразите кнопку отправки
С точки зрения jsp-кода у меня возникают проблемы с самого начала. Я не могу отправить форму контроллеру, если в раскрывающемся списке есть изменения. Событие onChange нельзя использовать с тегом. Если я использую это (ниже), значение выбора не передается контроллеру:
<select path='employee' onChange="submit();">
<option value="${selected}" selected>${selected}</option>
<c:forEach items="${employees}" var="currentEmployee">
<c:if test="${currentEmployee!= selected}">
<option value="${currentEmployee.employeeId}">${currentEmployee.employeeName}</option>
</c:if>
</c:forEach>
</select>
</form:form>
Я понятия не имею, как передать выбор в контроллер. Очевидно, что нужно знать выбор, чтобы я мог загрузить второй раскрывающийся список с соответствующими данными выбранного сотрудника.
Я пробовал метод initBinder:
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
binder.setDisallowedFields(new String[] {"employees"});
Employee employee = (Employee)binder.getTarget();
но объект сотрудника не найден.
Метод onSubmit также не принимает значение:
public ModelAndView onSubmit(Object command) throws ServletException
{
String selectedEmployee = ((Employee) command).getName();
logger.info("The Selected Employee is: " + selectedEmployee );
Это также не подбирает выбранного сотрудника. Я очень новичок в Spring, и я подозреваю, что я далеко от базы с такой динамической загрузкой. Возможно ли это сделать с помощью Spring (без jQuery)? Как только я могу динамически загружаться из выпадающих выборок, я думаю, что могу работать с остальными.
Есть идеи?