无法通过按钮使用url从jsp检索传递的值到控制器

时间:2014-01-05 17:27:58

标签: java jsp servlets

我将href分配给按钮并将值传递给控制器​​

  1. JSP页面

    <td><a href="viewController?book_id=<%=vo.getBookId()%>"><input type="button" name="remove" value="DELETE"/></a>
    </td>
    
  2. 在控制器中,我试图在使用以下方式点击按钮时获取值:

    if(request.getParameter("remove") !=null)
    {
        int cart_id=(Integer)request.getSession(false).getAttribute("cartid");
        b_id = (String) request.getParameter("book_id");
        int bid=Integer.parseInt(b_id);
        System.out.println(bid);
    }
    
  3. 虽然我在URL中传递了book_id值,但这会打印一个空值。 我想知道如何通过按钮获取URL中传递的值。

2 个答案:

答案 0 :(得分:3)

您无法将[a]标记与[input]标记组合在一起。 尝试使用表单而不是隐藏的输入:

<form action=viewController>
<input type=hidden name=remove value=delete>
<input type=hidden name=book_id value=<%=vo.getBookId()%>>
<input type=submit value='Delete'>
</form>

生成的网址为:viewController?remove=delete&book_id=...

答案 1 :(得分:2)

按下提交按钮后,将发送整个表单。您可以使用属性action选择要发送数据的位置:

<form action="demo_form.jsp"> 
  <!--inputs here-->
  <input type="submit">Send me now</input>
</form>

在这种情况下,表格将被发送到demo_form.jsp。在HTML5中,如果要为不同的按钮使用不同的servlet,可以使用formaction属性

任何方式,您都不应使用链接发送表单。

可以使用不带按钮链接:

<a href="viewController?book_id=<%=vo.getBookId()%>">Remove</a>