SPRING MVC - динамическое заполнение раскрывающегося списка при выборе другого раскрывающегося списка - PullRequest
0 голосов
/ 06 января 2012

Мы используем 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)? Как только я могу динамически загружаться из выпадающих выборок, я думаю, что могу работать с остальными.

Есть идеи?

1 Ответ

0 голосов
/ 06 января 2012

HTML-тег выбора не имеет атрибута path. Имеет атрибут name. Spring form:select имеет атрибут path.

Используйте <form:select ...>, а не только <select ...>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...