如何在下拉框中显示arraylist的内容

时间:2010-10-08 14:28:23

标签: html jsp arraylist

我有一个sql语句,可以为各个pidm提供关于tagnum的信息。每个pidm都可以有多个tagnum,所以我将信息丢弃到arraylist中。我想在html页面的下拉框中显示这个arraylist的内容。

以下是arraylist的代码:

       <table style="border:transparent" style="width:100%">
            <tr>
             <td style ="width: 300px;">
             <select style="width:150px;"tabindex="5" name="Tag">
                 <option></option>
<%} rscheck.close();
     ResultSet rsTagCheck = stmt.executeQuery("SELECT PARKING.XKRPRMT.XKRPRMT_PIDM, PARKING.XKRPRMT.XKRPRMT_STATUS, PARKING.XKRPRMT.XKRPRMT_EXPIRE_YR, PARKING.XKRPRMT.XKRPRMT_TAG FROM PARKING.XKRPRMT WHERE XKRPRMT_PIDM ='" + BannerID + "'");

     while (rsTagCheck.next()){
            ArrayList<String> myTag = new ArrayList<String>();
            myTag.add(rsTagCheck.getString("XKRPRMT_TAG"));         
%>              
                  <option><%= myTag.get(0) %></option>
             </select>
             </td>

我可以在下拉框中显示第一个要显示的元素,但之后的任何内容都会显示一个outofbounds异常。我想知道如何显示arraylist中的所有信息。

@Pointy我做到了,我得到的就是这个:

alt text

它把第一个放在那里,但其余的不会填充!!

2 个答案:

答案 0 :(得分:2)

根本没有理由创建数组列表。

while (rsTagCheck.next()) {
  %>
  <option><%= rsTagCheck.getString("XKRPRMT_TAG") %></option>
  <%
}

编辑 - 当然,在实践中,您应该注意这些字符串可能包含的内容。如果字符串来自某种用户输入,那么您不应该只是将它们未经洗涤转储到HTML中。然而,这是另一个主题。

答案 1 :(得分:1)

不要使用scriptlet,请使用jstl tags,在这种情况下使用

<c:forEach var="myTag" items="${rsTagCheck}">

<c:out value="${myTag.getString('XKRPRMT_TAG')}" />

实际上再看一下你的代码,我不会把db查询放在scriptlet中!不应在此处进行DB访问,将结果集从servlet传递给jsp,并使用jstl循环访问数据。