【问题标题】:how to assign arraylist to select option in jsp如何将arraylist分配给jsp中的选择选项
【发布时间】:2013-10-10 10:52:34
【问题描述】:

我有清单:

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>

所以我的要求是不使用 for 循环。我们直接在select option中写list

【问题讨论】:

    标签: html jsp


    【解决方案1】:

    不建议在jsp中使用java代码。你应该尽量避免它。

    在您的情况下需要遵循的方法是首先将 Arraylist 设置为调用 jsp 页面的 servlet 中的属性。

    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>
    

    我写了article for looping over HashMap and ArrayList in JSP

    【讨论】:

    • 不要使用任何循环。如何直接将列表写入选项
    • 可以直接在options中写入值。如果值很少。 list.get(i) 这样做的方式是不可取的,如果列表很大或将来会增长或缩小。
    • 没关系
    • 这行得通。但是如果你不使用 for 循环,你必须将所有的索引都输入到 list.get() 中。如果您使用循环打印 list.get(i),为什么不使用 jstl for-each 循环。它将使您的代码更具可读性。
    • 需要修复&lt;/c:forEach&gt;
    【解决方案2】:

    我猜你做得很好,只需将代码更改为:- &lt;option value="&lt;%out.print(Field); %&gt;"&gt;&lt;/option&gt; 希望这有效

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2016-03-08
      • 2020-03-31
      • 1970-01-01
      相关资源
      最近更新 更多