将值从JSP scriptlet传递到servlet

时间:2014-04-17 16:13:26

标签: java javascript jsp servlets

我想显示表格内容并根据通过点击各行的提交按钮获取的唯一ID来编辑获得的特定行。

下面的代码用于列出每一行中包含编辑按钮的所有记录:

<TABLE align="Center" border="1px" width="80%">
    <%Iterator itr;%>
    <%List data=(List) request.getAttribute("UserData");
    for(itr=data.iterator();itr.hasNext();)
    {%>
        <tr>
            <% String s= (String) itr.next(); %> <!-- Stores the value (uniquie id) in the String s -->
            <td><%=s %></td>
            <td><%=itr.next() %></td>
            <td><%=itr.next() %></td>
            <td><%=itr.next() %></td>

当我单击编辑按钮时,我想从第一列和第一行获取包含唯一ID的值。 从String&#34; s&#34;中获取值的代码如下:

<form id="edit" action="EditRecord" method="post"  onsubmit=<%=s %>>
  <td><input type="submit" value="Edit" name="edit"> </td>
</form>

现在我想将存储在String中的值传递给我的servlet&#34; EditRecord&#34;但不知怎的,价值没有过去。

servlet的代码如下:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Connection conn;
    Statement stmt;
    ResultSet res = null;
    String id   ;
    String query;
    DatabaseConnection dbconn;


//  protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    try{

        id=request.getParameter("id");
        System.out.println(id);
        dbconn=new DatabaseConnection();
        conn=dbconn.setConnection();
        System.out.println(conn);
        stmt=conn.createStatement();
        System.out.println(stmt);
        query="select * from user_details where User_id="+id;
        res=dbconn.getResultSet(query, conn);
        System.out.println(res);

    }catch (Exception e)
    {

    }finally{
        request.setAttribute("EditData",res );
        RequestDispatcher rd=request.getRequestDispatcher("/editdata.jsp");
        rd.forward(request, response);
        out.close();
    }


    }

}

有人能告诉我我在哪里弄错了......请指导我

提前致谢

1 个答案:

答案 0 :(得分:3)

单击提交按钮时会调用onSubmit事件,但它不会向服务器发送任何数据。

在您的情况下,我建议您在表单中添加隐藏输入,以便在单击提交按钮时将其发送到服务器。检查以下代码:

<form id="edit" action="EditRecord" method="post" >
  <td><input type="hidden" id="id" value="<%=s %>"/>
  <input type="submit" value="Edit" name="edit"> </td>
</form>