将类的ArrayList从jsp传递到servlet

时间:2014-02-17 05:43:59

标签: java jsp servlets arraylist

我有一个类Room的ArrayList。我需要将它从jsp发送到servlet。

似乎html或jsp可以将值发送到servlet的唯一方法是通过表单,我尝试的方法是将其作为隐藏参数传递,如下所示:

<input type="hidden" name="allRooms" value="<%=request.getAttribute("allRooms") %>" />

但是在我提交此表单的servlet中,我收到编译错误“String无法转换为List”以获取以下内容:

 List<Room> allRooms=(List<Room>)request.getParameter("allRooms");

首先将参数转换为Object类型,然后将其转换为List,如下所示,会产生相同的异常,但这次是作为运行时异常:

 Object a=(Object)request.getParameter("allRooms");
 List<Room> allRooms=(List<Room>)a;

是否有任何方法可以将List传递给servlet,或者我必须将它设置为JSP中的会话变量?

提前致谢。

3 个答案:

答案 0 :(得分:2)

  

是否有任何方法可以将List传递给servlet,或者我必须将它设置为JSP中的会话变量?

使用session。这是一个最佳解决方案。

无法在HTML中表示通过html表单发送的ArrayList。请改用session

答案 1 :(得分:0)

我认为如果你传递以下参数,并且数组是在servlet端形成的

param[0]=ss , param[1]=ssw

你可以这样做。

List<String> roomParams =(List<String>)request.getParameter("param");

但要做到这一点。

List<Room> allRooms=(List<Room>)request.getParameter("allRooms");

我认为这是不可能的,所以你应该使用会话属性

session.setAttribute("allRooms", new ArrayList<Room>());

答案 2 :(得分:0)

我认为您不应该直接向List发送Servlet,而应该留意其他选项。

您如何在浏览器页面上生成ArrayList?如果它是从UI中的多选元素生成的,那么您可以在Array中以Servlet的形式访问请求参数值。

Shishir