2010-10-08 3 views
0

У меня есть заявление sql, которое выводит информацию о tagnum для отдельных pidm's. Каждый pidm может иметь несколько tagnum, поэтому я отбрасываю информацию в arraylist. Я хочу отобразить содержимое этого 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

Он положил первый там, но все остальное не заселить !!

+0

Вы подтвердили, что запрос возвращает более одной строки? – Roadie57

ответ

2

Нет причин создавать список массивов вообще.

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

редактировать — конечно на практике вы должны быть осторожны, о том, что эти строки могут содержать. Если строки поступают из какого-то пользовательского ввода, вы не должны просто сбрасывать их в HTML. Но это еще один предмет.

+0

Я пробовал это, и я разместил изображение в вопросе. Он не заполнил первый tagNum !!! Остальные diplayed вне раскрывающегося окна. –

+1

@gary: Вы должны напечатать '' только * после * цикла 'while', а не внутри. Кроме того, ваш JSP/JDBC-код, поскольку он находится в вопросе, является рецептом будущих проблем. Я настоятельно рекомендую положить все в сторону и получить себя через * приличный * JSP/Servlet/JDBC книгу/учебник. – BalusC

+0

@BalusC верен - код сценария, подобный этому, является ужасно устаревшим способом написания страниц JSP. – Pointy

1

Не используйте скриптлетов, используйте jstl tags и в этом случае

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

и

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

На самом деле, глядя снова на свой код, я бы не ставил запрос дб в скриптлете! DB-доступ не должен выполняться здесь, передавайте результаты в jsp из сервлета и просматривайте данные с помощью jstl.

+1

Чтобы расширить этот ответ, обратитесь к [link] (http://stackoverflow.com/questions/3177733/howto-avoid-java-code-in-jsp-files). – BalusC

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