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

مشكلة في عملية الاضافة في صفحة jsp

مغلق
بدأه moustafa_ad في 19 ديسمبر 2006 · 3 رد · 981 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أقوم بعمل موقع ويب باستخدام الJSP لحجز لتذاكر السفر ولكن واجهتني مشكلة عند إضافة المعلومات عند الرحلة بحيث عندما اقوم بكتابة المعلومات و اضغط submit يتم التحديث على الصفحة وكأنة ضاف في قاعدة البيانات ولكن في الحقيقة لا تتم أي عملية إضافة للمعلومات .

مع العلم أنة لا يظهر أي خطأ ابداً

و أنا تحيرت كثير فأرجو منكم المساعدة وهذا هو الكود الخاص بالموقع حتى تكون الصورة واضحة لكم

 package fly.beans;
هذا الكود للدوال الsetو الget

public class FlyBean{
	  private String fly_no,fly_address,fly_currency,fly_date,fly_time,air_source,air_destination;
	  private String no_passenger;

	  public FlyBean(){
	  }

 public void setFlyNo(String fly_no)
   {
	this.fly_no=fly_no;
   }

   public String getFlyNo()
   {
	  return this.fly_no;  
   }
	public void setFlyAddress(String fly_address)
   {
	this.fly_address=fly_address;
   }

   public String getFlyAddress()
   {
	  return this.fly_address;  
   }
	public void setFlyCurrency(String fly_currency)
   {
	this.fly_currency=fly_currency;
   }

   public String getFlyCurrency()
   {
	  return this.fly_currency;  
   }

	public void setFlyDate(String fly_date)
   {
	this.fly_date=fly_date;
   }

   public String getFlyDate()
   {
	  return this.fly_date;  
   }
	public void setFlyTime(String fly_time)
   {
	this.fly_time=fly_time;
   }

   public String getFlyTime()
   {
	  return this.fly_time;  
   }
	public void setAirSource(String  air_source)
   {
	this.air_source=air_source;
   }

   public String getAirSource()
   {
	  return this.air_source;  
   }
	public void setAirDestination(String air_destination)
   {
	this.air_destination=air_destination;
   }

   public String getAirDestination()
   {
	  return this.air_destination;  
   }
	public void setNoPassenger(String no_passenger)
   {
	this.no_passenger=no_passenger;
   }

   public String getNoPassenger()
   {
	  return this.no_passenger;  
   }
   }

هذا الكود الي بيتصل ب قاعدة البيانات ويوجد فية الدالة التي تعمل عملة الاضافة

 package fly.beans;

import java.io.*;
import java.sql.*;
import java.util.*;

public class FlyDataBean {
   private Connection connection;
   private Statement statement;

   // construct TitlesBean object 
   public FlyDataBean() //throws Exception
   {
   	try{

		String dataSourceName = "flight";
		String dbURL = "jdbc:odbc:" + dataSourceName;
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	   connection= DriverManager.getConnection(dbURL, "",""); 

		 statement = connection.createStatement();
		 	}
		 	catch (Exception err) {
		System.out.println( "Error: " + err );
	}

   }

	public void addFly(FlyBean fly) throws SQLException
   {
	  statement.executeUpdate("INSERT INTO fly_info (fly_no,fly_address,fly_currency,fly_date,fly_time,air_source,air_destination,no_passenger) VALUES ('"+fly.getFlyNo()+"','"+
		 fly.getFlyAddress()+"','"+fly.getFlyCurrency()+"','"+fly.getFlyDate()+"','"+fly.getFlyTime()+"','"+
		 	fly.getAirSource()+"','"+fly.getAirDestination()+"','"+fly.getNoPassenger()+"')");
   }


  protected void finalize()
   {
		try {
		 statement.close();
		 connection.close();
	  }

		catch ( SQLException sqlException ) {
		 sqlException.printStackTrace();
	  }
   }
}

هذه صفحة ال جي اس بي

<%@ page import="fly.beans.*" %>

<jsp:useBean id = "fly" scope = "page" 
   class = "fly.beans.FlyBean" />

 <jsp:useBean id = "flyData" scope = "page" 
   class = "fly.beans.FlyDataBean" />

	  <jsp:setProperty name = "fly" property = "*" />
	  <jsp:setProperty name = "flyData" property = "*" />

	  <% 
	  if((fly.getFlyNo()==null)||(fly.getFlyAddress()==null)||(fly.getFlyCurrency()==null)||(fly.getFlyDate()==null)||
	  (fly.getFlyTime()==null)||(fly.getAirSource()==null)||(fly.getAirDestination()==null)||(fly.getNoPassenger()==null))
	  {
	   %>
	   <form action="add_fly.jsp" >

	<p dir="ltr" align="center"> </p>
		<table border="1" id="table1">
			<tr>
				<td width="4">
				                             <b>
				FlightNumber</b>                               </td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T1" size="20"></td>
			</tr>
			<tr>
				<td width="4" height="43">
				<b>FlightAddress</b></td>
				<td height="43">
				<p dir="ltr" align="left">
				<input type="text" name="T9" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b> FlightCurrency </b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T10" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b> FlightDate</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T11" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>FlightTime</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T12" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>FlightSource</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T13" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>FlightDestination </b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T14" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>PassengerNumber</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="T15" size="20"></td>
			</tr>
		</table>
	<p dir="ltr" align="center"> </p>
	<p dir="ltr" align="center"><input type="submit" value="Save" name="B1"><input type="reset" value="ReSet" name="B2"></p>
</form>


	  <%
	  }else{ 
	 flyData.addFly(fly); 

	  }
%>

وانا شاكر الي كل من سوف يقوم بمساهدتي واتمنى للجميع التوفيق

Moustafa

#2

السلام عليكم

اخي الكريم هذا الشرط دائما سيكون true لأنك لم تعي اية قيم لعناصر ل FlyBean

 <% 
	  if((fly.getFlyNo()==null)||(fly.getFlyAddress()==null)||(fly.getFlyCurrency()==null)||(fly.getFlyDate()==null)||
	  (fly.getFlyTime()==null)||(fly.getAirSource()==null)||(fly.getAirDestination()==null)||(fly.getNoPassenger()==null))
	  {

فيجب قبل هذا الشرط ان تضع قيم لعناصر ال FlyBean مثل

fly.setAirDestination ...

لو سمحت ممكن ان تعدل الكود

       &nbsp

وتضع بينهما فراغات ليسهل قرائة الكود حتي يلتف النص على حجم عرض الشاشة

ملاحظة بسيطة:

تستطيع ان تغير ال method لل form الى POST ثم مثلا تعمل

if (request.getMethod()=="POST")
	{Fly.setAirDestination...
	 .....

او ان تضيف مثلا حقل مخفي داخل الفورم وتسميه اية اسم مثلا action او dowhat او .... وتضع قيمته add

مثلا

<input type="hidden" name="do" value="add">

if(request.getParameter("do")!=null){Fly.setAirDestination...
	 .....

أو اية طريقة تعجبك

والله أعلم

تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 20 ديسمبر 2006 في 09:01

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#3

اضافة لما ذكره الاخ العزيز محب الرسول

بعد نظره سريعه ، هناك بعض التعديلات يجب عليك القيام بها

في الصنف FlyBean

يجب ان تتقيد بالتسميه فمثلا

المتغير fly_no يجب ان تسمى الطرق لتعامل معه بالاسماء التاليه

setFly_no و getFly_no

وفي صفحة jsp يجب ان يكون اسم الحقل كالتالي

<input type="text" name="fly_no" size="20">

وهكذا لباقي المتغيرات

قمت بتعديل بسيط في الكود

package fly.beans;

public class FlyBean{
	  private String 
	  flyNo,flyAddress,
	  flyCurrency,flyDate,flyTime,
	  airSource,airDestination,noPassenger;


public void setFlyNo(String fly_no)
   {
	this.flyNo=fly_no;
   }

   public String getFlyNo()
   {
	  return this.flyNo;  
   }
	public void setFlyAddress(String fly_address)
   {
	this.flyAddress=fly_address;
   }

   public String getFlyAddress()
   {
	  return this.flyAddress;  
   }
	public void setFlyCurrency(String fly_currency)
   {
	this.flyCurrency=fly_currency;
   }

   public String getFlyCurrency()
   {
	  return this.flyCurrency;  
   }

	public void setFlyDate(String fly_date)
   {
	this.flyDate=fly_date;
   }

   public String getFlyDate()
   {
	  return this.flyDate;  
   }
	public void setFlyTime(String fly_time)
   {
	this.flyTime=fly_time;
   }

   public String getFlyTime()
   {
	  return this.flyTime;  
   }
	public void setAirSource(String  air_source)
   {
	this.airSource=air_source;
   }

   public String getAirSource()
   {
	  return this.airSource;  
   }
	public void setAirDestination(String air_destination)
   {
	this.airDestination=air_destination;
   }

   public String getAirDestination()
   {
	  return this.airDestination;  
   }
	public void setNoPassenger(String no_passenger)
   {
	this.noPassenger=no_passenger;
   }

   public String getNoPassenger()
   {
	  return this.noPassenger;  
   }
   }

AddForm.jsp

<form action="AddFly.jsp" method="post">
	<p dir="ltr" align="center"> </p>
		<table border="1" id="table1">
			<tr>
				<td width="4">
				 <b>FlightNumber</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="flyNo" size="20"></td>
			</tr>
			<tr>
				<td width="4" height="43">
				<b>FlightAddress</b></td>
				<td height="43">
				<p dir="ltr" align="left">
				<input type="text" name="flyAddress" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b> FlightCurrency </b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="flyCurrency" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b> FlightDate</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="flyDate" size="20"></td>
			</tr>  
			<tr>
				<td width="4">
				<b>FlightTime</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="flyTime" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>FlightSource</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="airSource" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>FlightDestination </b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="airDestination" size="20"></td>
			</tr>
			<tr>
				<td width="4">
				<b>PassengerNumber</b></td>
				<td>
				<p dir="ltr" align="left">
				<input type="text" name="noPassenger" size="20"></td>
			</tr>
		</table>
	<p dir="ltr" align="center"> </p>
	<p dir="ltr" align="center"><input type="submit" value="Save" name="B1"><input type="reset" value="ReSet" name="B2"></p>
</form>

AddFly.jsp

<%@ page import="fly.beans.*" %>
<%@ page 
language="java"
contentType="text/html; charset=windows-1256"
pageEncoding="windows-1256"
%>
<jsp:useBean id="fly" class="fly.beans.FlyBean" scope="page" />
<jsp:setProperty name="fly" property="*" />
<jsp:useBean id="flyData" scope="page" class="fly.beans.FlyDataBean" />
<%

	flyData.addFly(fly);
	response.sendRedirect("AddForm.jsp");
%>

وبالتوفيق

تم تعديل هذه المشاركة بواسطة ali7876 في 20 ديسمبر 2006 في 10:36

#4

الــــــــــسلام عليكم

مشكورين اخواني على السرعة في الرد و على اهتمامكم في المساعدة

و اشكر الاخ علي ali7876 على الرد الذي قام فيه بحل المشكلة

حيث ان المشكلة كانت في اسم المتغير الذي ترجعة الدالة getلانة كان الاسم هو نفس اسم الباراميتر الذي يدخل للدالة set

واتمنا للجميع التوفيق والنجاح

واشكركم اخواني على المساعدة

Moustafa

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…