Как установить <option selected> на основе ArrayList? - PullRequest
0 голосов
/ 13 января 2012

У меня есть 2 массива в JSP, которые передаются из сервлета контроллера: allOptionsList и alreadySelectedOptionsList.

Я пытаюсь создать HTML-форму с раскрывающимся списком <select> и хочу показать все элементы изallOptionsList как <option> в <select>, но я хочу, чтобы элементы из alreadySelectedOptionsList отображались как <option selected="selected">.

Это то, что у меня уже есть:

<select name="options" size="20">
     <c:forEach items="${allOptionsList}" var="optionAll">
        <option>${optionAll.optionName}</option>
     </c:forEach>
</select>

В основном, я хочу, чтобы опция была выбрана, если она уже есть в списке alreadySelectedOptionsList.Как мне этого добиться?

Ответы [ 2 ]

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

Если вы нацелены на контейнер Servlet 3.0, который поддерживает функцию EL 2.2 для вызова методов с аргументами (например, Tomcat 7, Glassfish 3 и т. Д.), Тогда вы можете использовать метод List#contains() для этого.

Но если вы нацелены на более старый контейнер, который не поддерживает вызов методов в EL, то вам нужно создать собственную функцию EL, которая выполняет эту работу.Вы можете найти конкретный пример в этом ответе: Как я могу сделать множественный выбор в jsp / jstl с выбранным значением?

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

Использование c:if

<select name="options" size="20">
     <c:forEach items="${allOptionsList}" var="optionAll">
        <c:if test="${optionAll.selected == 'true'}">
            <option>${optionAll.optionName}</option>
        </c:if>
     </c:forEach>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...