2014-04-25 71 views
0
<%@ page import="java.sql.*" %> 
<%@ page import="javax.sql.*" %> 
<%@ page import="java.util.*" %> 


     <% 
     Connection con =null; 
     PreparedStatement pstmt=null; 
     List<String> list=null; 
     ResultSet rs=null; 
     try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "xyz", "abc"); 
     String strQuery = "SELECT batch_id,course_name FROM t_students_batch"; 
     pstmt = con.prepareStatement(strQuery); 
     rs = pstmt.executeQuery(); 
     list = new ArrayList<String>(); 

     while(rs.next()) { 
     list.add(rs.getString("batch_id")); 
     list.add(rs.getString("course_name")); 
      } 

     }catch(Exception e) { 
      System.out.println("Error:: "+e.getMessage()); 
     } 

     %> 

     <html> 
     <head> 
     <title>pay</title> 
     </head> 
     <body> 
     <form action="payment.jsp" method="get"> 

     BatchId ::<select name="batchid"> 
     <% 

     for (String temp : list) { 


      // how to i get this.. 
     out.println("<option>"+ temp +"</option>"); 


     } 


     %> 

     <input type="submit" value="continue" action="payment.jsp" /> 

     </select> 
     </form> 
     </body> 
     </html> 

輸出:::顯示選擇列表

1 java 

2 jsp 

總列值顯示這樣

當我點擊了 「1」,它的工作... 當我點擊java或者jsp,它會顯示一個空指針異常..

我想取java值爲1的顯示器,因爲它是邏輯..

回答

0

試試這個。

<% 
    for (int i = 0; i < list.size(); i = i+2) { 
     out.println("<option value='"+list.get(i) +"'>"+ list.get(i+1) +"</option>"); 
    } 
%> 
+0

謝謝你sunny..it工作正常.. – user

+0

你能解釋我你做了什麼。 – user

+0

其實你是在列表中添加元素,如第一個是batch_id,第二個是course_name。所以當你做一個循環來獲取batch_id時,我會添加i = i + 2。因爲batch_id被存儲在索引列表中,如1,3,5,7,.. – Sunny

0

缺失值attr,現在應該提交值。

<% 
    for (String temp : list) { 
     // how to i get this.. 
     out.println("<option value='"+temp +"'>"+ temp +"</option>"); 
    } 
%> 
+0

我得到了同樣的結果。 – user