مشكلة java.lang.String cannot be cast to java.util.ArrayList

السلام عليكم

لقد كنت ابرمج تطبيق بالجافا

وكان البرنامج يشتغل بشكل جيدا

لافاجئ بهذا الخطا

java.lang.String cannot be cast to java.util.ArrayList

عندي jsp و servlet

في الjsp

عندي المتغير معرف هكذا

ArrayList lisetidlivre = new ArrayList();

                 lisetidlivre.add("");
                 gardersession.setAttribute("lisetidlivre", "");

وفي الservlets

response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter();

    HttpSession gardersession = request.getSession();
    String trace = (String) gardersession.getAttribute("trace");

    gardersession.setAttribute("chercher", trace);

    //ArrayList<String> lisetidlivre = new ArrayList<String>();

    ArrayList<String> lisetidlivre = (ArrayList<String>)gardersession.getAttribute("lisetidlivre");


    lisetidlivre.add(request.getParameter("idlivre"));
    gardersession.setAttribute("lisetidlivre", lisetidlivre);

    for (int i=0; i<lisetidlivre.size(); i++) {
          Object elem = lisetidlivre.get(i);
            out.println(elem);
        }

المشكل هنا

ArrayList lisetidlivre = (ArrayList)gardersession.getAttribute("lisetidlivre");

ارجوا المساعدة وشكرا جزيلا

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

gardersession.getAttribute("lisetidlivre"); retourne String

الحل هو

lisetidlivre.add ( (ArrayList)gardersession.getAttribute("lisetidlivre") ); XD

المشكلة في هذا السطر يا صديقي :

             gardersession.setAttribute("lisetidlivre", "");
  • لاحظ انك لم تقوم بارسال المصفوفة في الخانة الثانية من الدالة وعوضا عن ذلك قمت بارسال نص فارغ. لهذا السبب عندما حاولت استدعاء المصفوفة من خلال السشن تم معاملتها على اساس انها String (نص) ولا يمكن تحويله إلى مصفوفة.

الكود الصحيح هو :

             gardersession.setAttribute("lisetidlivre", lisetidlivre);

شكرا على الاقتراح ولكنه لم يشتغل

في المرة الاولى فقط

ولكن المرة الثانية والثالثة يكون عندنا نفس المشكل السابق

lisetidlivre

هي

ArrayList lisetidlivre = new ArrayList();