2014-06-25 51 views
0

countrylogin.jsp無法在JSP頁面從<option>標籤接收值GetParameter函數在servlet頁面

我想在<option value=<%rs.getInt(1);%>>

來從數據庫中一個整數值,並將其發送到countrylogin.java一個servlet頁面

<tr><th>COUNTRY LIST:</th> 
      <th><select name="sel3" > 
     <option>--SELECT--</option> 
    <% while(rs.next()) 
    { %> 

    <option value=<%rs.getInt(1);%>> <% out.println(rs.getString(2)); %></option> 
     <% } %> 
     </select></th></tr> 

在countrylogin.java:

我想使用getParameter()方法接收在最後一頁中選擇的選項,但我無法接收值!

Connection con=conn.connectionprovider.getDbConnection(); 
Statement st=con.createStatement(); 
ResultSet rs=st.executeQuery("select * from country"); 
int select=Integer.parseInt(request.getParameter("sel3")); 
System.out.println(select); 
String username=request.getParameter("t1"); 
String password=request.getParameter("t2"); 
DateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date fromdate=new Date(); 
System.out.println(dateformat.format(fromdate)); 
int s=st.executeUpdate("insert into " +    
    "countrylogin(cid,username,password,fromdate,status) " +  
    "values("+select+",'"+username+"','"+password+"', "+ 
    ""+dateformat.format(fromdate)+"','active')"); 
System.out.println("work..."); 
request.getRequestDispatcher("addcountrylogin.jsp").forward(request, response);   

請幫忙?

回答

0

我沒有測試它,但它似乎不是

<option value=<%rs.getInt(1);%>> 

你應該使用

<option value="<%= rs.getInt(1) %>"> 

實際上從數據庫打印到HTML值。沒有它,你的選擇會看起來像

<option value=>foo</option> 
<option value=>bar</option> 

,而不是

<option value="42">foo</option> 
<option value="24">bar</option> 

因此其價值將根據其內容,這意味着,在第一種情況下值將foobar代替4224這會引起異常

int select=Integer.parseInt(request.getParameter("sel3")); 

代替

<% out.println(rs.getString(2)); %> 

你也可以寫

<%= rs.getString(2) %>