как добавить arraylist в Jsp

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
  </head>
  <body>
<%=new Date() %>

<%
ArrayList al = new ArrayList();
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
%>

    <select>
      <option value="<%=al%>"></option>
    </select>
  </body>
</html>

Это мой код я хочу добавить Arraylist в раскрывающемся списке в Jsp я не знаю, как связать arraylist в HTML obtion или выпадающем списке, пожалуйста, помогите мне, я много пробовал, но не смог этого сделать .

4 ответов


редактировать

попробуйте это:

<%

ArrayList al = new ArrayList();
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");

%>

<select>
   <%  for(int i = 0; i < al.size(); i++) {
           String option = (String)al.get(i);
   %>
   <option value="<%= option %>"><%= option %></option>
   <% } %>
</select>
</body>
</html>

вы должны использовать тегов JSTL <forEach> перебирать элементы и добавлять их в select-option . Вероятно, сделать List атрибут области видимости . Заполнить List объект в сервлете, установите его в request/session объем и вперед request к этому JSP. Помните, что вы можете заполнить List в самом JSP и использовать pageScope ссылаться на него, но это будет плохой дизайн, на мой взгляд.

<select>
 <c:forEach var="element" items="${al}">
  <option value="${element}">${element}</option>
 </c:forEach>
</select> 

здесь al - это имя атрибута, который хранит the List наверное request или session объем.

использовать JSTL в проекте:

  1. скачать на JSTL 1.2 jar .

  2. объявите taglib в файле JSP для ядро JSTL taglib.

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    

если вы хотите использовать только Скрипты(что плохо, конечно):

<%

List<String> al = new ArrayList<String>();
al.add("C");
..........
...........

%>
<select>
  <%  for(String element: al) { %>
   <option value="<%=element%>"><%=element%></option>
  <% } %>
</select>

приведенный выше код будет работать, если вы определили List as List<String>, или вам нужно бросить элемент в String.

читать Как избежать Java-кода в JSP-файлах?.


взгляните на тег в основной библиотеке JSTL.

сохраните arraylist в pageScope.myList и цикл следующим образом:

<select>
<c:forEach items="${pageScope.myList}" var="item" varStatus="status">
<option value='${item}'></option>
</c:forEach >
</select>

это предпочтительнее, чем использование скриптов, которые не считаются хорошей практикой


попробуйте следующее: объявите свой arraylist между <%! … %>

<%! ArrayList al = new ArrayList(); %>