单击按钮,从jsp向servlet发送arraylist

时间:2014-04-14 17:53:17

标签: jsp servlets

这是我的jsp页面。

jsp页面代码: -

<img src='image.jpg' height=200px width=200px>
<form action="buyserv">
<%
ArrayList al=new ArrayList();
al.add("naman");
al.add("gupta");
request.setAttribute("allproducts", al);
RequestDispatcher rd = request.getRequestDispatcher("/buyserv");
rd.forward(request, response);

%>
<input type="submit" value="Buy"></form> 
<a href="ShowAllProducts.jsp"><input type="button" value="Continue"></a> 

我希望点击“购买”按钮,arraylist(al)应该传递给buyserv(servlet)。 然而,列表被传递给buyserv,但问题是jsp页面没有显示。但我想显示jsp页面,并在按钮点击时传递arraylist。 谁能告诉我怎么办?

buyserv代码: -

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws   
ServletException, IOException 
{
ArrayList al=(ArrayList)request.getAttribute("allproducts");
PrintWriter out=response.getWriter();
out.print(al.get(0));
}

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式将列表作为String []传递:

<form action="buyserv">
<input type='text' name='list'  value='a' />
<input type='text' name='list'  value='b' />
<input type='text' name='list'  value='c' />
<input type="submit" value="Buy" />
</form> 

如果您不希望表单上显示值,也可以使用type='hidden'

在servlet中:

String[] values = request.getParameterValues("list");

如果需要从列表生成值,请使用循环:

<form action="buyserv">
<%
  String[] array = { "a", "b", "c" };
  for(int i=0; i<array.length; i++)
  {
    out.print("<input type='text' name='list'  value='" + array[i] + "' />");
  }
%>
<input type="submit" value="Buy" />
</form>