• 0
zizo.h

الدرس الأول + الثاني في Jstl

سؤال

بســم الله الـرحمــن الرحيــم

صرلي زمان ما حطيت شي مفيد بس الان سوف اكتب عن Tag library

و كمثال سوف نرىJSTL وعلى غرارها في كتير مكتبات ظريفة و في منهن FrameWork مثل JSF(javaServerFaces)

هذه المكتبات بالمختصر المفيد تضيف عدة وسوم tag مثل html

بس طبعا بكون Dynamic اكتر وفي بعضهم جمل شرطية ولهن عدة استخدامات

وبموقع Apache tomcat حاطين مكتبات من شغلهن رابط مكتبات الوسوم

لنبدأ تركيب المكتبة:Installing library

1-أول شي منضيف ال jar تبعها-هلآ عم ناخد JSTL كمثال-و في IDE متل Netbeans بتكون جاهزة بتضيفها ببساطة

هلآ لح ناخد مثال على elcipse -انا عم استخدم MyEclipse لا فرق في هذه الحالة-

من properites تبع المشروع --> java Build Path ثم

Libraries

المكتبات الازمة وكل شي بدك يل لل JavaServerPages standard tag library (JSTL) موجودة بموقع apache بنفس الرابط القديم JSTL تحميل

1.jpg

2-منضيف المكتبة داخل صفحة ال jsp الكود:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

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

و uri فينا نقول شي ثابت وهاد العنوان مو حقيقي يعني لا حدا يفكر انو لازم يكون على الانترنت ,هاد بدل عليها بال jar . هيك بنكون خلصنا تنزيلها؟لالالالالا

هكذا تعمل بس مو التمام يوجد بعض الأشياء لا تعمل هكذا

2-لا زم نكمل في داخل الملف المضغوط الذي حملناه بوجد مجلد اسمه tld

في داخله يوجد ملفات لاحقتها .tld لازم تنضاف في داخل المجلد ب web-inf نسخ بشكل عادي

3-بدنا نضيف بعض الأسطر على web.xml ميشان نوصف الملفات الي ضفناها

الكود يفضل نسخه على المفكرة لأجل القراءة

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/
core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/xml</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>

</web-app>

طبعا في ناس بتكون مغير بل web.xml في داخل web-inf

مثلا ضايفينservlet او شي تاني

المهم انا لح كمل إن شاء الله بهل الشي حسب مابعرف ,هلآ ماكتبت كل شي لأنو مشغول بالدراسة في مذاكرات و المقالة الجاية بشرح شي جديد وهلآ لح حط مثال للتجربة ضعه في ملف jsp

وإن شاء الله بيمشي الحال وإذا في غلط بكلامي نبهوني وسامحوني على الأخطاء الغوية

الكود:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tutorial</title>
</head>

<body>

<c:set var="idx" value="name" />
<%-- السطر التالي لطبع قيمة parameter
من request او شي تاني

--%>
<c:out value="${param.name}" />

param[name] =
<c:out value="${param[idx]}" />

<br />
</c:if>

<br />

<form method="post">Please enter your name?
<input type="text" name="name" />

<input type="Submit" />

<br />
</form>
<a href="http://adnanonline.wordpress.com" target="_blank">Adnan Blog</a>
</body>
</html>

هذا الموضوع مأخوذ من مدونتي رابطها بالتوقيع وإذا عندي أخطاء قلولي الذي يوجد لديه أي سؤال يسأل وإن شاء الله بقد جاوب :lol:

تم تعديل بواسطه zizo.h
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

12 إجابة على هذا السؤال .

  • 0

السلام عليكم

درس جميل جداً

لكني أعيب عليك شيء وحيد

الكتابة بالعامية ترهقني جداً

على كل حال أحب أن أضيف شيئين

1- JSTL هي اختصار JSP Standard Tag Library

مهمتها في الحياة هي تسهيل البرمجة بـ jsp

وجعل وظائف كانت لا بد أن تكتب بلغة الجافا مثل for ,if

تكتب بواسطة xml

نستطيع القول بأنها محاولة لجعل jsp تتوافق مع xhtml

2- هذه المكتبة تتعارض مع jsf

أحياناً تعمل بعض خواصها

لكنها غير متوافقة كلية معها

والعمل بها مع jsf أحياناً يعطي نتائج غير مأمونة

أتمنى من صاحب الموضوع الإكمال

سأقوم بالتثبيت كتشجيع

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نكمل بســم الله الـرحمــن الرحيــم

1-في هذا الدرس سنتعرف على Scope وكيفية التعامل معها

2-الوسوم: <c:if>,<c:out>

نبدأ بال Scope :

فينا ندعوه بمنظار الرؤية حسب رأية لأنه بحدد مجال وجود السمة Attribute

و متغيرات ال JSTL يمكن تستخدم بال JSP مثل المثال القادم وتعين بالوسم أو الأمر <c:set>

ويوجد للوسم القيم name,value,scope

Name=Variable Name,Value=Variable Value,Scope = Variable scope

Variable Scopes

post-135549-1227116166_thumb.jpg

مثال بسيط:

 <%--
Coded by zizo.h
MyBlog:http://adnanonline.wordpess.com
E-mail:[email protected]
[email protected]
--%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %><html>
<head>
<title>JSTL Tutorial by zizo.h</title>
</head>

<body>10 divided by 0 is
<%--An simple Expression --%>
<c:out value="${10/2}"></c:out>


<c:set var="name" value="zizo.h" scope="request"/>
<c:set var="name" value="adnan" scope="page"/>
From requestScope
<c:out value="${requestScope.name}"></c:out>


Without Scope
<c:out value="${name}"></c:out>

Using JSP Code
<%
out.println(request.getAttribute("name"));
%>
</body></html>

بين لنا المثال الفرق وطبعا بيمشي الحالعل كل شي بس انا اخد هل السكوبات

2- الوسم <c:out>

بياخد السمة value وبتكون فيمتها

إما Expression أو شي جملة و التعابير بتكون معروفية لدى مببرمجي jsp و بالمثال جمعنا رقمين و فينا نعمل كتير شغلات

منرجع لل scope إذا لاحظتوا بالسمة value

 <c:out value="${requestScope.name}"></c:out>

كتبت requestScope.name يعني حددت ال attribute من request

وإذا بدنا ياها من session منكتب sessionScope

بظنها مفهومة و سهلة

3- الوسم <c:if>

هاد مهم و هو متل غيرو بيفحص الشرط وإذا كان صح بنفد العبارات ضمنه يعني ضمن <c:if></c:if>

صيغتها الأساسية هيك كمثال

<c:if test=""></c:if>

وبين الوسمين يوجد ماتريد ان يحدث إذا كان الشرط صحيح

وقيمة test="" بتكون expresion يبدأ ب ${}

مثلا

<c:if test="${'adnan'=='adnan'}">True</c:if>

بهل الحالة لح يطبع true أكيد

أما إذا كان الشرط غلط فأنا لا أعرف شي عن هذه الحالة بس بعرف أنه لن ينفذ الذين بين الوسمين

سوف أعطيك مثال متوسط الحجم بيمشل كل شي اخدنا اليوم

هو مشروع ب MyEclipse سوف اعطيكن يا لوحده بلا workspace

90% سوف لا يعمل انتو شوفوا السورسات وزبطوها إذا حبيتوا و أنا سوف أضع الكود هنا

: لح=سوف عفوا على الكتابة باللهجة الشامية مفردات

أنا عامل شغلة حلوة حبيت فرجيكم ياها وهي RequestDispatcher

ححتلاظوها من خلال ال Servlet .

أول شي في index.jsp يوجد في داخله form يعبأ ثم يرسل إللى servlet ثم تضم بداخله صفحة jsp تمرر لها ال request & response

index.jsp:

<%--
Coded by zizo.h
MyBlog:http://adnanonline.wordpess.com
E-mail:[email protected]
[email protected]
--%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tutorial</title>
</head>

<body>
<form method="post" action="servlet/resender">Please enter your name and e-mail<br>
Name: <input type="text" name="name" /><br>
E-mail: <input type="text" name="email"/><br>
<br><input type="checkbox" name="box">Are you ......?
<input type="Submit" />

<br />
</form>
<a href="http://adnanonline.wordpress.com">Adnan Blog</a>
</body>
</html>

ثم ال servlet لي لح يكون العنوان URL Pattern تبعها الذي في داخل ملف التوصيف web.xml :

/servlet/resender اسمها test.java

/*
Coded by zizo.h
MyBlog:http://adnanonline.wordpess.com
E-mail:[email protected]
[email protected]
*/
import java.io.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class test extends HttpServlet {
HttpServletRequest sender;
/**
* Constructor of the object.
*/
public test() {
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {




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

/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}

}

الصفحة النهائية اسمها reciver.jsp

<%--
Coded by zizo.h
MyBlog:http://adnanonline.wordpess.com
E-mail:[email protected]
[email protected]
--%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<head><title>JSTL Tutorial</title></head>
<body>
A few tests
<c:out value="${10*5-3/3}"></c:out><%--Result is 49.0--%>
<br>

Name:<c:out value="${param.name}"></c:out><br>
E-mail:<c:out value="${param.email}"></c:out><br>
<c:if test="${param.box=='on'}">
<input type="checkbox" checked="checked">
</c:if>
<c:if test="${param.box!='on'}">
<input type="checkbox">
</c:if>
</body>
</html>

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

ٍإذا وجدت تشجيع و إقبال عليه يمكن كمل

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

سلام.

JSTL.rar

تم تعديل بواسطه zizo.h
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كل التشجيع لك يا زيزو.اتش

اكمل فكلنا بحاجة لدروسك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف يمكنني الحصول على نسخة MyEclipse

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

علاء الصالحي:

MyEclipse هي plugin لل Eclipse بس كبيرة بتغير كل شي و بتساوي كتير شغلات automatic و بتريح و بيجي معها tomcat مضمن داخلي + متصفح

و كم سFrameWroks جاهز, لقيت رابط على rapidshare بس بدك Premium Account

رابط الصفحة

انا عندي ياها بس مابقدر ارفعها بسبب الانترنت بيخلص ال Bandwidth

إذا قدرت بحطوا

سلام.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أظن MyEclipse توزيعة

بمعنى أنها عبارة عن Eclipse مضاف إليه بعض الأشياء

ألف شكر على الوصلة

وننتظر جديدك

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

MyEclipse بتنزل فوق eclipse وإذا جبت MyEclipse لتنزلها لوحدها فإنها لم تعمل ويطلب ووجود Eclipse ميشان هيك أنا عبرت عنا كأنها plugin

بس بيعتبروها MyEclipse IDE

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حياكم الله جميعاً ..

في الحقيقة انا حملت MyEclipse و Eclipse

الذي وجدته ان الاول يتم تحميله install و الثاني يتم فقط نسخ ملفاته الي اي مسار في النظام

برأي هما مختلفان ... و لهما plugins مختلف ... لا ادري ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا انصحكم باستخدام ال Net Beans IDE 6 اقوى بكتير من ال اي كليبس و مستقرة اكتر و بيجي فيا

Glass fish Application Server شي خيالي بس اتقل شوي بس فيك تكتب فيا

C++,Ruby,PHP,JAVA, and more شكرا لصاحب الموضوع :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أقوى لا أظن

مستقرة أكثر لا أظن

أكليبس سابقة في موضوع الأكثر من لغة على فكرة

هل استخدمت اكليبس من قبل؟ لا أظن

ربما الموضوع وجهة نظر أكثر من أي شيء آخر

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

للعلم العضو zizoadn انتقل إلى العضو adnanonline الذي هو أنا -> Adnanonline=zizoadn

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .