الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

get session in Arraylist - JSP

بدأه shokry3 في 13 مايو 2011 · 9 رد · 872 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

>>السلام عليكم ورحمة الله

..عندى مشكلة عندما أحاول تخزين ال session ثم استرجاعها فى ArrayList

>>>هذا هو الكود فى ال details.jsp والتى أخزن بها ال session

<%
if(request.getParameter("name")!=null&& request.getParameter("price")!=null)
{
	price = Integer.parseInt(request.getParameter("price"));
	name = request.getParameter("name");
	total = total+price;
      SimbleBook book = new SimbleBook(name, price, total);
      ItemList PreviousBook =
      (ItemList)session.getAttribute("books");
    if (PreviousBook == null) {
      PreviousBook = new ItemList();
      session.setAttribute("books", PreviousBook);
    }
    PreviousBook.setNewItem(book);
    RequestDispatcher dispatcher =
      getServletContext().getRequestDispatcher("/show.jsp");
    dispatcher.forward(request, response);
}

>>> وهذا هو الكود فى ال show.jsp واللتى اريد استرجاع ال session بها فى Arraylist لعرضها

<%
ArrayList books = new ArrayList();
books = (ArrayList)session.getAttribute("books");
for(int i=0; i<books.size(); i++) {
	SimbleBook book = (SimbleBook)books.get(i);
	out.println(""+book.getName());
  }
%>

>>> وهذiه هى ال exceptions

org.apache.jasper.JasperException: An exception occurred processing JSP page /details.jsp at line 39

36:     PreviousBook.setNewItem(book);
37:     RequestDispatcher dispatcher =
38:       getServletContext().getRequestDispatcher("/show.jsp");
39:     dispatcher.forward(request, response);
40: }
41: %>
42: </body>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:418)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:363)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:306)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

.... معزة إن كان الموضوع فى غير مكانه

.... وشكرا لكل من فى المنتدى

"ولله الأسمــــاء الحسنى فادعوه بها"

#2

مبدأيا جرب هذا الحل : < لم أجربه :blush:

احذف

RequestDispatcher dispatcher =
      getServletContext().getRequestDispatcher("/show.jsp");
    dispatcher.forward(request, response);

واستبدله بـ :

response.sendRedirect("/show.jsp");

بانتظارك :)

تحياتي

1

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

>> ظهر لى هذا ال exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /show.jsp at line 19

16: <jsp:getProperty name="items" property="itemTable" />
17: <%
18: ArrayList books = new ArrayList();
19: books = (ArrayList)session.getAttribute("books");
20: for(int i=0; i<books.size(); i++) {
21: 	SimbleBook book = (SimbleBook)books.get(i);
22: 	out.println(""+book.getName());


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:363)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:306)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause

"ولله الأسمــــاء الحسنى فادعوه بها"

#4

ضع الكود الكامل ..

#5
هويدي كتب:

ضع الكود الكامل ..

>>> هذا details.jsp

<%@ page language="java" contentType="text/html; charset=windows-1256"
    pageEncoding="windows-1256" import ="myClasses.*" session="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>Insert title here</title>
</head>
<body>
<%!int id = 0; String name=null; int price=0; int total=0;%>
<form>
<p>
name :
<INPUT TYPE="TEXT" NAME="name">
</p>
<p>
price : 
<INPUT TYPE="TEXT" NAME="price">
</p>
<p>
<INPUT TYPE="SUBMIT" VALUE="add to cart">
</form>
<%
if(request.getParameter("name")!=null&& request.getParameter("price")!=null)
{
	price = Integer.parseInt(request.getParameter("price"));
	name = request.getParameter("name");
	total = total+price;
      SimbleBook book = new SimbleBook(name, price, total);
      ItemList PreviousBook =
      (ItemList)session.getAttribute("books");
    if (PreviousBook == null) {
      PreviousBook = new ItemList();
      session.setAttribute("books", PreviousBook);
    }
    PreviousBook.setNewItem(book);
    response.sendRedirect("http://localhost:8080/Purchese/show.jsp");
}
%>
</body>
</html>

>>> وهذا show.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="myClasses.SimbleBook" session="true"%>
<%@ page contentType="text/html;charset=windows-1252" import="java.util.*"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    <title>showPurcheses</title>
  </head>
  <body>

<TABLE BORDER=5 ALIGN="CENTER">
  <TR><TH CLASS="TITLE">Thanks for Ordering</TABLE>
<H2>Your Purchases</H2>

<!-- here I try to send the arraylist throw session to the class ItemList but I have no Item in the arraylist here -->
<!--<jsp:useBean id="items" class="myClasses.ItemList" scope="session"/>-->
<!--<jsp:getProperty name="items" property="itemTable" /-->

<!-- so I use this java code here -->
<%
ArrayList books = new ArrayList();
books = (ArrayList)session.getAttribute("books");
for(int i=0; i<books.size(); i++) {
	SimbleBook book = (SimbleBook)books.get(i);
	out.println(""+book.getName());
  }
%>
<form action="thanks.jsp">
      <div align="center">
        <input type="submit" value="add to cart"/>
      </div>
    </form>
  </body>
</html>

>>> ودى الكلاس ListItem

package myClasses;


import java.util.*;
public class ItemList {
  private ArrayList items = new ArrayList();
  public synchronized void setNewItem(SimbleBook newBook) {
    if (newBook != null) {
      items.add(newBook);
    }
  }
    public synchronized String getItemTable() {
        if (items.size() == 0) {
          return("<H3>No items...</H3>");
        }
        String tableString =
          "<TABLE BORDER=1>\n" +
          "  <TR CLASS=\"COLORED\">\n" +
          "      <TH>Book Name\n" +
          "      <TH>Price\n" +
          "      <TH>total price\n";
        for(int i=0; i<items.size(); i++) {
          SimbleBook item = (SimbleBook)items.get(i);
          tableString +=
            "  <TR><TD>" + item.getName() + "\n" +
            "      <TD>" + item.getPrice() + "\n" +
            "      <TD>"+ item.getTotal() +  "\n";
        }
        tableString += "</TABLE>";
        return(tableString);
      }
    public synchronized String toString() {
      return("[Item List: " + items.size() + " entries.]");
    }
}

"ولله الأسمــــاء الحسنى فادعوه بها"

#6

اين الـ SimbleBook class

خلاص انا عملت الاشياء المهمه بها كى اتعامل معاها

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 13 مايو 2011 في 18:57

Software Developer
Mahmoudkelany.com


 

#7

تفضل

كود الـdetails.jsp

<%@ page language="java" contentType="text/html; charset=windows-1256"
     	pageEncoding="windows-1256" import ="myClasses.*" session="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    	<title>Insert title here</title>
	</head>
	<body>
    	<%!int id = 0;
        	String name = null;
        	int price = 0;
        	int total = 0;%>
    	<form>
        	<p>
            	name :
            	<INPUT TYPE="TEXT" NAME="name">
        	</p>
        	<p>
            	price :
            	<INPUT TYPE="TEXT" NAME="price">
        	</p>
        	<p>
            	<INPUT TYPE="SUBMIT" VALUE="add to cart">
    	</form>
    	<%
                	if (request.getParameter("name") != null && request.getParameter("price") != null) {
                    	price = Integer.parseInt(request.getParameter("price"));
                    	name = request.getParameter("name");
                    	total = total + price;
                    	SimbleBook book = new SimbleBook(name, price, total);
                    	ItemList PreviousBook =
                            	(ItemList) session.getAttribute("books");
                    	if (PreviousBook == null) {
                        	PreviousBook = new ItemList();
                        	session.setAttribute("books", PreviousBook);
                    	}
                    	PreviousBook.setNewItem(book);
                    	response.sendRedirect("show.jsp");
                	}
    	%>
	</body>
</html>

كود الـ show

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="myClasses.SimbleBook, myClasses.ItemList" session="true"%>
<%@ page contentType="text/html;charset=windows-1252" import="java.util.*"%>
<html>
	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    	<title>showPurcheses</title>
	</head>
	<body>

    	<TABLE BORDER=5 ALIGN="CENTER">
        	<TR><TH CLASS="TITLE">Thanks for Ordering</TABLE>
    	<H2>Your Purchases</H2>

    	<!-- here I try to send the arraylist throw session to the class ItemList but I have no Item in the arraylist here -->
    	<!--<%--<jsp:useBean id="items" class="myClasses.ItemList" scope="session"/>--%>
    	<%--<jsp:getProperty name="items" property="itemTable" />--%>

    	<!-- so I use this java code here -->
    	<%
                	ItemList list;
                	list = (ItemList) session.getAttribute("books");
                	ArrayList books = list.getItems();
                	for (int i = 0; i < books.size(); i++) {
                    	SimbleBook book = (SimbleBook) books.get(i);
                    	out.println("" + book.getName());
                	}
    	%>
    	<form action="thanks.jsp">
        	<div align="center">
            	<input type="submit" value="add to cart"/>
        	</div>
    	</form>
	</body>
</html>

كود الـ ItemList

package myClasses;

import java.util.*;

public class ItemList {

	private ArrayList items = new ArrayList();

	public synchronized void setNewItem(SimbleBook newBook) {
    	if (newBook != null) {
        	items.add(newBook);
    	}
	}

	public ArrayList getItems() {
    	return items;
	}

	public synchronized String getItemTable() {
    	if (items.size() == 0) {
        	return ("<H3>No items...</H3>");
    	}
    	String tableString =
            	"<TABLE BORDER=1>\n"
            	+ "  <TR CLASS=\"COLORED\">\n"
            	+ "  	<TH>Book Name\n"
            	+ "  	<TH>Price\n"
            	+ "  	<TH>total price\n";
    	for (int i = 0; i < items.size(); i++) {
        	SimbleBook item = (SimbleBook) items.get(i);
        	tableString +=
                	"  <TR><TD>" + item.getName() + "\n"
                	+ "  	<TD>" + item.getPrice() + "\n"
                	+ "  	<TD>" + item.getTotal() + "\n";
    	}
    	tableString += "</TABLE>";
    	return (tableString);
	}

	public synchronized String toString() {
    	return ("[Item List: " + items.size() + " entries.]");
	}
}

كود الـ SimbleBook

package myClasses;

public class SimbleBook {

	private String name;
	private int price;
	private int total;

	public SimbleBook(String name, int price, int total) {
    	this.name = name;
    	this.price = price;
    	this.total = total;
	}

	/**
 	* @return the name
 	*/
	public String getName() {
    	return name;
	}

	/**
 	* @param name the name to set
 	*/
	public void setName(String name) {
    	this.name = name;
	}

	/**
 	* @return the price
 	*/
	public int getPrice() {
    	return price;
	}

	/**
 	* @param price the price to set
 	*/
	public void setPrice(int price) {
    	this.price = price;
	}

	/**
 	* @return the total
 	*/
	public int getTotal() {
    	return total;
	}

	/**
 	* @param total the total to set
 	*/
	public void setTotal(int total) {
    	this.total = total;
	}
}

بالتوفيق

2

Software Developer
Mahmoudkelany.com


 

#8

المشكله كانت فين يا محمود؟

في ال slash ؟

#9

انه كان بيعمل cast للـ Session فى ArrayList وهو كان مخزنها ItemList

فبالتالى يسترجعها ويستخدمها غلط طبعا

Software Developer
Mahmoudkelany.com


 

#10

>>> بجد أنا متشكر جدا جدا

....... الكود اشتغل وذى الفل

>>>> وآسف على التعطيل

:clapping: .................. واتمنى للناس الجمال ذيكم كل التوفيق ديما ............ :clapping:

"ولله الأسمــــاء الحسنى فادعوه بها"

مواضيع مشابهة