Как сравнить два массива, чтобы установить множественный выбор HTML в JSP - PullRequest
0 голосов
/ 03 января 2019

Я сохранил список выбранных значений из множественного выбора HTML в строковом массиве, взятом из базы данных. Я хочу сравнить значения этих выбранных опций с полным списком опций выбора, чтобы установить их как выбранные при загрузке экрана. Я продолжаю получать несколько экземпляров для одних и тех же опций выбора из-за цикла.

    <select id="selectForm" name="selectForm" multiple="multiple"> 
        <c:forEach items="${FullList}" var="fullList">
            <c:forEach items="${PreSelected}" var="preSelected">                
                <option ${preSelected== fullList.name ? 'selected="selected"' : ''}>${fullList.name}</option>
            </c:forEach> 
        </c:forEach>
    </select>

Как получить один уникальный список выбора с уже выбранными сохраненными значениями? Есть ли лучший способ решения проблемы, чем мой подход?

1 Ответ

0 голосов
/ 09 июля 2019

Попробуйте сделать это вместо цикла перед элементом option, переместите цикл внутри элемента option, как показано ниже.

<select id="selectForm" name="selectForm" multiple="multiple"> 
  <c:forEach items="${FullList}" var="fullList">
    <option 
     <c:forEach items="${PreSelected}" var="preSelected"> 
      <c:if test="${preSelected== fullList.name}">selected</c:if> 
     </c:forEach>
    >${fullList.name}</option>
  </c:forEach>
</select>
...