Существует класс 'Автомобиль' с брендом и моделью как свойства. У меня есть список объектов этого класса List<Car> myCars
. Я должен представить 2, выпадает на странице JSP, один для бренда и другого для модели, которые, когда Вы выбираете бренд в образцовом списке только, появляются те от того бренда. Я не знаю, как сделать это динамическим способом.
Какое-либо предложение, где запустить?Спасибо
Обновление
Хорошо, то, что я делаю теперь, отправляют в запросе список со всеми торговыми марками и список объектов. Код JSP похож:
<select name="manufacturer" id="id_manufacturer" onchange="return getManufacturer();">
<option value=""></option>
<c:forEach items="${manufacturers}" var="man">
<option value="${man}" >${man}</option>
</c:forEach>
</select>
<select name="model" id="id_model">
<c:forEach items="${mycars}" var="car">
<c:if test="${car.manufacturer eq man_selected}">
<option value="${car.id}">${car.model}</option>
</c:if>
</c:forEach>
</select>
<script>
function getManufacturer()
{
man_selected = document.getElementById('id_manufacturer').value;
}
</script>
Как я делаю для обновления 'образцовых' избранных опций согласно выбранному 'man_selected'?
В основном есть 3 способа достичь этого:
Используйте JavaScript для отправки формы на сторону сервера при изменении выпадающего списка и позвольте JSP/сервлету загрузить и отобразить дочерний выпадающий список соответственно на основе параметра запроса. Технически это самый простой способ, но и наименее удобный для пользователя. Вероятно, вы также захотите оживить все остальные вводимые значения формы.
Позвольте JSP заполнить значения в массиве JavaScript и используйте функцию JavaScript для загрузки и отображения дочернего выпадающего списка. Немного сложнее, конечно, если вы еще не знаете JavaScript, но это более удобно для пользователя. Единственная оговорка заключается в том, что этот способ неэффективен с точки зрения пропускной способности и памяти, если у вас относительно много выпадающих элементов.
Пусть JavaScript выполняет асинхронный HTTP-запрос на стороне сервера и отображает дочерние выпадающие элементы соответствующим образом. Сочетает в себе лучшее из вариантов 1 и 2. Эффективно и удобно для пользователя.
Я опубликовал расширенный ответ с примерами кода здесь: Заполнение дочерних выпадающих списков в JSP/Servlet.