2010-12-23 58 views
-1

我在NetBeans中工作,我有一個JSP頁面,它有一個需要從MySQL數據庫中提取選項的下拉列表。我無法弄清楚如何讓MySQL數據庫填充下拉列表。在JSP頁面中填充下拉列表

<form action="student/studentQueryResponse.jsp"> 
    <strong>Select a student:</strong> 
    <select name="studentID"> 
     <c:forEach var="row" items="${student.rowsByIndex}"> 
      <c:forEach var="column" items="${row}"> 
       <option <c:out value="${column}"/> 
       </option> 
      </c:forEach> 
     </c:forEach> 
    </select> 
    <input type="submit" value="submit" name="submit" /> 
</form> 
+0

嗯,這實際上只是一個jsp頁面。 – 2010-12-23 15:21:14

+0

我在我的項目中使用jsf,但是,這個頁面沒有使用任何jsf組件。 – 2010-12-23 15:26:44

回答

1

你從哪裏粘貼代碼?它使用rowsByIndex屬性,所以它顯然意味着與jstl標籤一起使用(並且由知道它的人編寫)。另一方面,在這種情況下,使用兩個嵌套的forEach子句是沒有意義的:您將最終爲每個學生數據(姓名,姓氏,無論)分別提供一個選項,而不是單個選項學生。它看起來好像原始代碼是用於某種數據網格的,並且已經被修改而沒有一絲理解。

盡我所能,我同意你沒有準備好編寫應用程序 - 而且你不會嘗試學習太多,因爲你很快就會變得越來越難。如果你被迫繼續這個應用程序,試着轉儲JSF並專注於JSP/JSTL,我相信它對於初學者來說沒有什麼警告,它會讓你更容易學習web應用程序的基礎知識。

這就是說,你正在尋找的答案是:

<sql:setDataSource dataSource="jdbc/db" /> 
<sql:query var="students"> 
    select * from students 
</sql:query> 
<form action="student/studentQueryResponse.jsp"> 
    <strong>Select a student:</strong> 
    <select name="studentID"> 
     <c:forEach var="row" items="${students.rowsByIndex}"> 
      <option id="<c:out value="${row[0]}"/>"><c:out value="${row[1]}"/></option>    
     </c:forEach> 
    </select> 
    <input type="submit" value="submit" name="submit" /> 
</form> 

你必須用自己的替代SQL查詢,你會在你的應用程序註冊一個數據源JDBC/DB服務器並在web.xml文件中。當然,你也需要一個MySQL驅動程序。我認爲你需要學生的ID,並且它是你的查詢的第一列。

0

是的BalusC的擔心是正確的,如果你不使用JSF,那麼它不是一個JSF項目。如果你製作一個JSF項目,然後 selectOneItem selectOneMenu可以爲你做的伎倆。就數據庫連接而言,乾淨的方式最好是通過使用數據源或簡單的jdbc或其他方法在您的支持bean中建立連接。