【问题标题】:how to pass a collection object in response.sendRedirect如何在 response.sendRedirect 中传递集合对象
【发布时间】:2023-04-05 21:59:01
【问题描述】:

在一个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.将此(列表)参数作为我显示的列表传递,但是当我检索它时,它会说

 cannot cast from string to List<Bean>

为此,我也尝试输入强制转换,但没有任何反应。

2.在 session 中设置该列表

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)%>

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: java xml jsp session


    【解决方案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");
    

    【讨论】:

    • 我无法删除,因为我必须使用此列表传递给一个变量,该变量将返回字符串,我将显示为 xml。
    • @A5l-lE5 从会话中删除列表取决于应用程序的性质。就是这样,我将其标记为可选。
    • 仍然给出错误 .unchecked cast from object to List
    • 你能不能试着把@SuppressWarnings("unchecked") 和List 放在一起
    • 我无法发出该警告,因为它的类型:安全检查。也给出了 java.lang.OutOfMemoryError:Java 堆空间异常。我也尝试增加堆大小,但它没有不工作。
    【解决方案2】:

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

    【讨论】:

    • 我不想使用 JSON,因为我正在从数据库中获取数据到我必须传递的列表中
    • 在这种情况下使用 RequestDispatcher 并使用 forward 方法,您可以在那里发送 List 。
    • 我已经尝试过了,但它不起作用 m 获取和错误 unchecked cast from object to List
    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多