7
<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

4 に答える 4

12

JSTL を使用<forEach>して要素を反復処理し、select-option. おそらくList、スコープ属性を作成します。Listオブジェクトをサーブレットに取り込み、スコープに設定して、このrequest/sessionJSP に転送しrequestます。ListJSP 自体にを入力し、それを参照するために使用できることを覚えておいてくださいpageScope。しかし、それは私の意見では悪い設計です。

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

ここでは、おそらくまたはスコープalに格納する属性の名前です。Listrequestsession

プロジェクトで JSTL を使用します。

  1. JSTL 1.2 jarをダウンロードします。

  2. JSTL コア taglibの JSP ファイルで 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>

上記のコードは、Listasを定義している場合List<String>、または要素を にキャストする必要がある場合に機能しStringます。

JSP ファイルで Java コードを回避する方法を参照してください。.

于 2013-07-26T10:57:27.537 に答える
5

編集済み

これを試して:

<%

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>
于 2013-07-26T10:58:38.043 に答える
1

これを試してください:間に配列リストを宣言してください<%! … %>

<%! ArrayList al = new ArrayList(); %>
于 2015-08-12T13:04:06.033 に答える
1

コア JSTL ライブラリのタグを見てください。

配列リストを pageScope.myList に格納し、次のようにループします。

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

これは、良い習慣とは見なされないスクリプトレットを使用するよりも望ましい方法です

于 2013-07-26T11:10:53.357 に答える