如何在response.sendRedirect中传递一个集合对象

时间:2014-03-18 09:47:54

标签: java xml jsp session

在jsp页面中说x.jsp,我有

if (some task =true)
{
//show xml at run time
List <User_Registration> list = dao.selectemailmobile(login); //here m getting data from  Db and m getting it perfectly alright
response.sendredirect("page.jsp?list="+list)
//i wanted to pass this list parameter as List<Bean> list=List<Bean>();
//this page will show xml at run time

}
else 
{
//some status code 
//this working fine 
}

我尝试了什么

1.将此(List)参数作为我已经显示的列表传递,但是当我正在检索它时,是

 cannot cast from string to List<Bean>

为此我也尝试输入它,但没有任何反应。

2.在会话中设置列表

unchecked cast from object to List<Bean>

3.使用请求调度程序

 i get same cannot cast from string to List<Bean>

我的xml页面代码

<%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="com.xml.*" %>
<%@page import="com.beans.*" %>
<%@page import="java.util.*" %>


<%@page import="com.xml.ForgotPasswordXml"%>
<%!java.util.List<User_Registration> list= null; %>
<%try{
HttpSession session2=request.getSession();
System.out.println("hii");

list=(List<User_Registration>)request.getAttribute("list");
//list=(java.util.List<User_Registration>)request.getParameter("list");
System.out.println(list.toString());
}catch(Exception e)
{
e.printStackTrace();
}
%>
<%=ForgotPasswordXml.xml(list)%>

任何帮助都会受到赞赏。谢谢

2 个答案:

答案 0 :(得分:1)

您可以将会话中的列表设置为

request.getSession().setAttribute("list",list);

在下一页中将列表检索为

@SuppressWarnings("unchecked")
List<Bean> list = (List<Bean>) request.getSession().getAttribute("list");

List<Bean> list = new ArrayList<Bean>();  
list.addAll(session.getAttribute("list")); 

注意类型转换,它将避免类型不匹配异常。

如果列表不再需要,请将其从会话中删除为(可选)

request.getSession().removeAttribute("list");

答案 1 :(得分:0)

将整个List作为一个JSON字符串发送,并使用JSON重建List。 您需要使用JSONObject。您可以做的另一件事是,将List设置为Session并从会话中返回List并在需要时使Session无效。