无法从JSP页面中的<option>标记接收值到servlet页面中的getParameter函数</option>

时间:2014-06-25 10:15:09

标签: java jsp servlets

countrylogin.jsp

我正在尝试从<option value=<%rs.getInt(1);%>>

中的数据库中获取整数值

并将其发送到servlet页面countrylogin.java

<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);           

请帮帮忙?

1 个答案:

答案 0 :(得分: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) %>