java - 在 JSP 中从对象 ArrayList 转换为对象数组

标签 java arrays list jsp arraylist

我正在尝试从 ArrayList 到对象数组进行简单的转换,但出现错误,我尝试了互联网上提到的多种方法,但没有一个有效,需要帮助

这就是我正在做的事情

  private List<CartItems> cartobj = new ArrayList<CartItems>();

  --- Bean (Cart) ---

  private String name;
  private float price;
  private int quantity;

  --- In Servlet ---

  Order h = new Order(String a, String b, String c);
  cartobj.add(h);

  session.setAttribute("Cart", cartobj);


  --- In JSP ---

  <tbody>
      <% ArrayList<CartItems> cartobj = new ArrayList<CartItems>();
      cartobj.add((CartItems)session.getAttribute("Cart"));
      for(int i=0;i<cartobj.size();i++)
      {%>
          <tr>
              <td><% out.println(i+1); %></td>
              <td><% cartobj.get(i).getProductName(); %></td>
              <td><% cartobj.get(i).getPrice(); %></td>
              <td><% cartobj.get(i).getSales_Address(); %></td>
              <td><% cartobj.get(i).getOrder_Date(); %></td>
              <td><% cartobj.get(i).getQuantity(); %></td>
          </tr>

      <% } %> 

我也尝试过这个

     <% 
       CartItems[] obj = (CartItems[])session.getAttribute("Cart");
       for(int i=0;i<obj.length;i++)
       {%>
           <tr>
               <td><% out.println(i+1); %></td>
               <td><% obj[i].getProductName(); %></td>
               <td><% obj[i].getPrice(); %></td>
               <td><% obj[i].getSales_Address(); %></td>
               <td><% obj[i].getOrder_Date(); %></td>
               <td><% obj[i].getQuantity(); %></td>
           </tr>
       <% } %>

我收到以下错误

  SEVERE: Servlet.service() for servlet [jsp] in context with path [/Final_Project] threw exception [java.lang.ClassCastException: java.util.ArrayList cannot be cast to [LObjects.CartItems;] with root cause

java.lang.ClassCastException: java.util.ArrayList 无法转换为 [LObjects.CartItems; 在 org.apache.jsp.cart_jsp._jspService(cart_jsp.java:165)

最佳答案

您无法将 List 转换为数组。 List 不是一种数组类型。但是,您可以使用 List.toArray(T[])并改变

session.setAttribute("Cart", cartobj);

类似于

session.setAttribute("Cart", cartobj.toArray(new CartItems[cartobj.size()]));

然后

CartItems[] obj = (CartItems[])session.getAttribute("Cart");

将是有效的。

关于java - 在 JSP 中从对象 ArrayList 转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174350/

相关文章:

php - 将每个 'StudentAnswer' 字段显示为其关联的每个 'AnswerContent' 字段 (php)

javascript - 如何使用 javascript/jquery 增加点击次数?

java - 从方法返回数组

python - 检查十六进制值列表是否连续

python - 打印解压缩的列表对象返回空列表

java - 如何为 swagger REST API 文档生成 java 客户端代码

java log4j INFO级别问题

list - React Native SectionList 有无法理解的流类型错误

java - GWT RPC 如何在其有效负载中编码 java.lang.Long 值?

java - 在没有临时文件的情况下将文件上传到 Java 中的 HTTP 服务器内存?