2013-10-10 2 views
3

У меня есть список:как назначить ArrayList, чтобы выбрать опцию в JSP

ArrayList list = new ArrayList(); 

Я пишу этот список выберите вариант:

<td> 
    <select name="database1"> 
     <option value="" selected>select</option> 
     <% 
     for(int i=0;i<list.size();i++) { 
      Field=list.get(i).toString(); 
     %> 
     <option value="<%=Field %>"><%=Field %></option> 
     <%} %> 
    </select> 
</td> 

Так мое требование является без использования для цикла. Мы напрямую пишем list в select option.

ответ

4

Не рекомендуется использовать код java внутри jsp. Вы должны стараться избегать этого.

Подход, который необходимо соблюдать в вашем случае, заключается в том, чтобы сначала установить Arraylist как атрибут в сервлете, который вызывает страницу jsp.

Servlet Код

ArrayList databaseArrayList = new ArrayList(); 
... 
request.setAttribute("databaseList", databaseArrayList);  

Затем в коде JSP, JSTL использовать для перебора значений списка для заполнения выбора опций.

JSP код

<select name="database1"> 
    <c:forEach items="${databaseList}" var="databaseValue"> 
    <option value="${databaseValue}"> 
     ${databaseValue} 
    </option> 
    </c:forEach> 
</select> 

Прочитайте это: How to avoid Java code in JSP files?

+0

выигрыш использовать любой цикл .показать непосредственно в списке для списка –

+0

Вы можете прямо писать значения в параметрах. Если значений мало. 'list.get (i)' способ сделать это не рекомендуется, если список большой или будет расти или сокращаться в будущем. – Sorter

+0

это нормально на <выберите имя = "Database1"> <параметр значение = "list.get (я)"> list.get (я) –

0

Я думаю, вы делаете большое, просто изменить свой код, как: - <option value="<%out.print(Field); %>"></option> Надеюсь, что это работает

Смежные вопросы