我有一个类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中的会话变量?
提前致谢。
答案 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