מדריך לספריית JSTL

1. סקירה כללית

ספריית התגים של JavaServer Pages (JSTL) היא קבוצה של תגים שניתן להשתמש בהם ליישום פעולות נפוצות כגון לולאה, עיצוב מותנה ואחרים.

במדריך זה נדון כיצד להתקין את JSTL וכיצד להשתמש בתגיות הרבות שלה.

2. התקנה

כדי לאפשר תכונות JSTL, נצטרך להוסיף את הספרייה לפרויקט שלנו. עבור פרויקט Maven, אנו מוסיפים את התלות ב- pom.xml קוֹבֶץ:

 javax.servlet jstl 1.2 

עם הוספת הספרייה לפרויקט שלנו, ההתקנה הסופית תהיה להוסיף את תג ה- JSTL הליבה ואת כל קובץ מרחב השמות של התגים האחרים ל- JSP שלנו באמצעות הוראות taglib כך:

לאחר מכן, נסתכל על התגים האלה המקובצים באופן נרחב לחמש קטגוריות.

3. תגיות ליבה

ספריית תגיות הליבה של JSTL מכילה תגים לביצוע פעולות בסיסיות כגון ערכי הדפסה, הצהרת משתנים, טיפול בחריגים, ביצוע איטרציות והצהרת הצהרות מותנות בין היתר.

בואו נסתכל על תגי הליבה.

3.1. ה תָג

משמש להצגת ערכים הכלולים במשתנים או תוצאה של ביטוי מרומז.

יש לו שלוש תכונות: ערך, ברירת מחדל ו- escapeXML. ה escapeXML פלט תכונות תגי XML גולמיים הכלולים ב- ערך תכונה או המתחם שלה.

דוגמה של תגית תהיה:

3.2. ה תָג

ה תג משמש להכרזה על משתנים היקפים ב- JSP. אנו יכולים גם להכריז על שם המשתנה וערכו ב- var ו ערך תכונות בהתאמה.

דוגמה תהיה לצורה:

3.3. ה תָג

ה התג מסיר משתנים מגודלים המקבילים להקצאה ריק למשתנה. זה לוקח var ו תְחוּם תכונה עם תְחוּם בעל ערך ברירת מחדל של כל ההיקפים.

להלן, אנו מראים דוגמה לשימוש ב- תָג:

3.4. ה תָג

ה תג תופס כל חריג שנזרק בתוך המתחם שלו. אם החריג נזרק, הערך שלו נשמר ב- var תכונה של תג זה.

שימוש אופייני יכול להיראות כך:

וכדי לבדוק אם החריג נזרק, אנו משתמשים ב- תג כפי שמוצג להלן:

היוצא מן הכלל הוא: $ {exceptionThrown}

יש יוצא מן הכלל: $ {exceptionThrown.message}

3.5. ה תָג

ה הוא תג מותנה המציג או מבצע את התסריטים הסגורים שלו רק כאשר הוא מִבְחָן מאפיין מעריך נכון. ניתן לאחסן את תוצאת ההערכה שלה var תְכוּנָה.

3.6. , ו תגים

ה הוא תג אב המשמש לביצוע ביטויים דמויי מתג או אם-אחר. יש לו שתי תגי משנה; ו המייצגים אם / אחר-אם ועוד בהתאמה.

לוקח מִבְחָן תכונה המכילה את הביטוי שיש להעריך. להלן אנו מראים דוגמה לשימוש בתגיות אלה:

3.7. ה תָג

ה תג מטפל באחזור וחשיפה של תוכן מכתובות אתרים מוחלטות או יחסית.

אנחנו יכולים להשתמש ב- url ו var תכונות להחזקת כתובת האתר, והתוכן שנאסף מכתובת האתר בהתאמה. לדוגמה, נוכל לייבא תוכן מכתובת אתר על ידי:

3.8. ה תָג

ה תג דומה לזה של Java עבור תחביר, בזמן או בעת ביצוע. ה פריטים תכונה מחזיקה את רשימת הפריטים שעליהם יש לחזור, בעוד התחל ו סוֹף מאפיינים מחזיקים את אינדקס ההתחלה והסיום בהתאמה (אפס אינדקס).

לתג יש גם שלב תכונה השולטת בגודל תוספת האינדקס לאחר כל איטרציה. להלן אנו מראים דוגמא לשימוש:

 פריט 

3.9. ה תָג

ה תג משמש לפיצול a חוּט לתוך אסימונים ואיטרציה דרכם.

דומה ל תג, יש לו פריטים תכונה ותוספת תוחם המאפיין שהוא התיחום עבור חוּט ככה:

3.10. ו תגים

ה תג שימושי לעיצוב כתובת אתר עם קידוד בקשה מתאים. כתובת האתר המעוצבת מאוחסנת ב- var תְכוּנָה.

לתג יש גם תג משנה המשמש לציון פרמטרים של כתובות אתרים. אנו מראים דוגמה למטה:

3.11. ה תָג

ה תג מבצע כתיבה מחדש של כתובת אתר ומפנה את המשתמש לדף שצוין בכתובת האתר שלו url תְכוּנָה. מקרה שימוש טיפוסי ייראה כך:

4. עיצוב תגים

ספריית תגי עיצוב JSTL מספקת דרך נוחה לעיצוב טקסט, מספרים, תאריכים, זמנים ומשתנים אחרים לתצוגה טובה יותר.

ניתן להשתמש בתגי עיצוב JSTL גם כדי לשפר את הבינלאומיות של אתר.

לפני שנשתמש בתגי עיצוב אלה, עלינו להוסיף את התגית ל- JSP שלנו:

בואו לזהות את תגי העיצוב השונים וכיצד ניתן להשתמש בהם.

4.1. ה תָג

ה תג שימושי בעיצוב תאריכים או שעה. ה ערך המאפיין מכיל את התאריך שיש לעצב, ואת סוּג התכונה לוקחת אחד משלושה ערכים; תאריך, שעה או שניהם.

יש לו גם תבנית תכונה בה אנו יכולים לציין את דפוס העיצוב הרצוי. להלן דוגמא לאחת הדפוסים:

4.2. ה תָג

ה תג דומה ל- תָג.

ההבדל הוא שעם אנו יכולים לציין את תבנית העיצוב שמנתח התאריכים הבסיסי אמור לצפות לערך התאריך.

אנו יכולים לנתח תאריכים:

4.3. ה תָג

ה תג מטפל בעיבוד מספרים בתבנית או דיוק ספציפיים שיכולים להיות אחד מהם מספר, מטבע או אחוז כמפורט ב סוּג תְכוּנָה. דוגמה לשימוש ב- יהיה:

4.4. ה תָג

ה תג דומה ל- תָג. ההבדל הוא שעם אנו יכולים לציין את תבנית העיצוב שמנתח המספרים הבסיסי אמור לצפות שהמספר יהיה בה.

נוכל להשתמש בזה כמו:

4.5. ה תָג

ה תג הוא תג הורה עבור תָג. הופך את החבילה שצוינה בה שם בסיס תכונה למצורף תגים.

תג שימושי להפעלת בינלאומיות מכיוון שנוכל לציין אובייקטים ספציפיים למיקום. שימוש אופייני יהיה בצורה:

4.6. ה תָג

ה תג משמש לטעינת חבילת משאבים בתוך JSP ולהפיכתו לזמין דרך כל הדף. חבילת המשאבים הטעונה מאוחסנת ב- var תכונה של תָג. אנו יכולים להגדיר את החבילה על ידי:

4.7. ה תָג

ה תג משמש להגדרת האזור עבור החלקים ב- JSP המוצבים לאחר הכרזתו. בדרך כלל נקבע זאת על ידי:

fr_FR מייצג את המקום שהוא צרפתי במקרה זה.

4.8. ה תָג

ה תג הוא תג אב שמציין את אזור הזמן לשימוש בכל פעולות עיצוב או ניתוח בזמן של תגים במתחם שלו.

פרמטר אזור זמן זה מסופק על ידי שלו ערך תְכוּנָה. דוגמה לשימוש מוצגת להלן:

4.9. ה תָג

ה ניתן להשתמש בתג כדי להעתיק את אזור הזמן שצוין בתוכו ערך תכונה למשתנה היקף שצוין ב var תְכוּנָה. אנו מגדירים זאת על ידי:

4.10. ה תָג

ה <>> תג משמש להצגת הודעה בינלאומית. יש להעביר את המזהה הייחודי להודעה שתאחזר לה מַפְתֵחַ תְכוּנָה.

חבילה ספציפית לחיפוש ההודעה אשר ניתן גם לציין באמצעות חבילה תְכוּנָה.

זה עשוי להיראות כך:

4.11. ה תָג

ה תג שימושי לציון סוג הקידוד לטפסים עם סוג פעולה של הודעה.

השם של קידוד התווים לשימוש מסופק דרך מַפְתֵחַ תכונה של תָג.

בואו נראה דוגמה למטה:

5. תגי XML

ספריית התגים JSTL XML מספקת דרכים נוחות לאינטראקציה עם נתוני XML בתוך JSP.

כדי להיות מסוגל לגשת לתגי XML אלה, הוספנו את ספריית התגים ל- JSP שלנו על ידי:

בואו נסתכל על התגים השונים בספריית תגי ה- XML ​​של JSTL.

5.1. ה תָג

ה תג דומה ל- תג scriptlet ב- JSP אבל משמש במיוחד לביטויים של XPath.

לתג יש בחר ו escapeXML תכונות המשמשות לציון הביטוי XPath להערכת a חוּט וכדי לאפשר בריחה של תווי XML מיוחדים בהתאמה.

דוגמה פשוטה היא:

פלט $ לעיל מתייחס לקובץ XSL נטען מראש.

5.2. ה תָג

ה תג משמש לניתוח נתוני XML שצוינו בתוכנה xml אוֹ דוק תכונה או מתחם. דוגמה טיפוסית תהיה:

5.3. ה תָג

ה תג מגדיר את המשתנה שצוין בתוכו var התכונה לביטוי ה- XPath המוערך שהועבר ל בחר תְכוּנָה. דוגמה טיפוסית תהיה:

5.4. ה תָג

ה תג מעבד את גופו אם הביטוי XPath שסופק לו בחר מאפיין מעריך נכון.

ניתן לאחסן את תוצאת ההערכה שלה var תְכוּנָה.

מקרה שימוש פשוט ייראה כך:

 למסמך יש לפחות אלמנט אחד. 

5.5. ה תָג

ה תג משמש לולאה על צמתים במסמך XML. מסמך ה- XML ​​מסופק באמצעות תגיות בחר תְכוּנָה.

בדיוק כמו ה- תג ליבה, תג יש להתחיל, לסיים ו שלב תכונות.

לפיכך, יהיה לנו:

  • שם הפריט:

5.6. , ו תגים

ה תג הוא תג אב המשמש לביצוע ביטויים דמויי מתג או אם / אחר-אם / אחר ואין לו תכונות אלא מצרף ו תגים.

תג דומה אם / else-if ולוקח a בחר תכונה המכילה את הביטוי שיש להעריך.

תג דומה לסעיף אחר / ברירת מחדל ואין לו מאפיין.

להלן אנו מראים מקרה שימוש לדוגמא:

  קטגוריית הפריט היא נעלי ספורט קטגוריית הפריט היא הקטגוריה עקבים לא ידועים. 

5.7. ו תגים

ה תג הופך מסמך XML בתוך JSP על ידי החלת עליו שפת גיליון סגנון eXtensible (XSL).

מסמך ה- XML ​​או חוּט להסבה מסופק ל דוק התכונה בזמן שה- XSL שיוחל מועבר ל- xslt תכונה של תָג.

תג הוא תת תג של תג והוא משמש להגדרת פרמטר בגיליון סגנונות השינוי.

מקרה שימוש פשוט יהיה מהצורה הבאה:

6. תגי SQL

ספריית תג JSTL SQL מספקת תגים לביצוע פעולת מסד נתונים יחסיס.

כדי לאפשר תגי JSTL SQL, אנו מוסיפים את התגית ל- JSP שלנו:

תגי SQL של ​​JSTL תומכים בבסיסי נתונים שונים כולל MySQL, Oracle ו- Microsoft SQL Server.

לאחר מכן, נבחן את תגי ה- SQL השונים הזמינים.

6.1. ה תָג

ה תג משמש להגדרת משתני התצורה של JDBC.

משתני תצורה אלה מוחזקים ב- מנהל התקן, כתובת אתר, משתמש, סיסמה ו מקור מידע תכונות של תג כפי שמוצג להלן:

באמור לעיל, var תכונה מחזיקה בערך המזהה את מסד הנתונים המשויך.

6.2. ה תָג

ה תג משמש לביצוע משפט SQL SELECT עם התוצאה המאוחסנת במשתנה היקף המוגדר בתוכו var תְכוּנָה. בדרך כלל, נגדיר זאת כ:

 בחר * ממשתמשים; 

תגיות מ"ר תכונה מחזיקה את פקודת SQL שיש לבצע. תכונות אחרות כוללות maxRows, startRow, ו מקור מידע.

6.3. ה תָג

ה תג דומה ל- תייג אך מבצע רק פעולות SQL INSERT, UPDATE או DELETE שאינן דורשות ערך החזרה.

דוגמה לשימוש תהיה:

 הכנס למשתמשים (שם ראשון, שם משפחה, דוא"ל) VALUES ('גרייס', 'אדמס', '[מוגן באמצעות דוא"ל]'); 

תגיות var תכונה מחזיקה את מספר השורות שהושפעו מהצהרת SQL שצוינה בה מ"ר תְכוּנָה.

6.4. ה תָג

ה תג הוא תג משנה שניתן להשתמש בו בתוכו אוֹ תג כדי לספק ערך עבור מציין מיקום ערך בהצהרת SQL כך:

 מחק ממשתמשים היכן אימייל =? 

לתג יש מאפיין יחיד; ערך המחזיקה בערך שיש לספק.

6.5. ה תָג

ה משתמשים בתגית בתוך אוֹ תג כדי לספק ערך תאריך ושעה עבור מציין מיקום ערך בהצהרת SQL.

אנו יכולים להגדיר זאת ב- JSP שלנו כך:

 עדכן משתמשים שהוגדרו רשומים =? היכן אימייל =? 

כמו תָג, לתג יש ערך תכונה עם תוספת סוּג תכונה שערכה יכול להיות אחד מ תאריך שעה אוֹ חותמת זמן (תאריך ושעה).

6.6. ה תָג

ה תג משמש ליצירת פעולה דמוית עסקאות JDBC על ידי קיבוץ ו תגים יחד כך:

  עדכן משתמשים SET first_name = 'Patrick-Ellis' WHERE email = "[email protected]" UPDATE Users SET last_name = 'Nelson' WHERE email = '[email protected]' הכנס למשתמשים (שם פרטי, שם משפחה, דוא"ל) ערכים ('גרייס ',' אדמס ',' [דוא"ל מוגן] '); 

תג מבטיח כי כל פעולות מסד הנתונים מעובדות בהצלחה (מחויבות) או שהכול נכשל בחן (הוחזר) אם מתרחשת שגיאה באחת מהפעולות.

7. פונקציות JSTL

שיטות JSTL הן כלי עזר למניפולציה של נתונים בתוך JSP. בעוד שחלק מהפונקציות לוקחות סוגי נתונים שונים, רובן מוקדשות עבור חוּט מָנִיפּוּלָצִיָה.

כדי לאפשר שיטות JSTL ב- JSP, נוסיף את התגית לדף שלנו:

בואו נסתכל על פונקציות אלה וכיצד להשתמש בהן.

7.1. fn: מכיל () ו fn: containIgnoreCase ()

ה fn: מכיל () שיטה מעריכה א חוּט כדי לבדוק אם הוא מכיל תשתית נתונה כזו:

נמצא 'ראשון' במחרוזת

ה fn: מכיל () פונקציה אורכת שניים חוּט ויכוחים; הראשון הוא המקור חוּט והטיעון השני הוא המצע. זה מחזיר בוליאני בהתאם לתוצאת ההערכה.

ה fn: containIgnoreCase () פונקציה היא גרסה חסרת-רישיות של fn: מכיל () שיטה וניתן להשתמש בו כך:

נמצא מחרוזת 'ראשונה'

נמצא מחרוזת 'FIRST'

7.3. ה fn: endsWith () פוּנקצִיָה

ה fn: endsWith () פונקציה מעריכה א חוּט כדי לבדוק אם הסיומת שלו תואמת למצע אחר. נדרשים שני ויכוחים; הטיעון הראשון הוא חוּט שאת הסיומת שלה יש לבדוק ואילו הטיעון השני הוא הסיומת שנבדקה.

אנו יכולים להגדיר זאת כמו:

מחרוזת מסתיימת ב'מחרוזת '

7.4. ה fn: escapeXml () פוּנקצִיָה

ה fn: escapeXML () פונקציה משמשת להימלט מסימון XML בקלט חוּט ככה:

$ {fn: escapeXml (string1)}

7.5. ה fn: indexOf () פוּנקצִיָה

ה fn: indexOf () פונקציה נראית דרך חוּט ומחזיר את אינדקס ההתרחשות הראשונה של המצע הנתון.

נדרשים שני ויכוחים; הראשון הוא המקור חוּט והטיעון השני הוא התשתית שתתאים ותחזיר את ההתרחשות הראשונה.

fn: indexOf () הפונקציה מחזירה מספר שלם וניתן להשתמש בה כמו:

אינדקס: $ {fn: indexOf (string1, "first")}

7.6. ה fn: להצטרף () פוּנקצִיָה

ה fn: להצטרף () פונקציה לשרשר את כל האלמנטים של המערך ליחיד חוּט וניתן להשתמש בהם כך:

7.7. ה fn: אורך () פוּנקצִיָה

ה fn: אורך () פונקציה מחזירה את מספר האלמנטים באוסף הנתון או את מספר התווים בנתון חוּט.

ה fn: אורך () פונקציה לוקח יחיד לְהִתְנַגֵד שיכול להיות אוסף או א חוּט ומחזיר מספר שלם כזה:

אורך: $ {fn: length (string1)}

7.8. ה fn: החלף () פוּנקצִיָה

ה fn: החלף () פונקציה מחליף את כל המופעים של המצע במחרוזת עם אחר חוּט.

נדרשים שלושה ויכוחים; המקור חוּט, המצע לחיפוש במקור וב- חוּט כדי להחליף את כל המופעים של המצע בדיוק כך:

7.9. ה fn: split () פוּנקצִיָה

ה fn: split () פונקציה מבצעת פעולה מפוצלת ב- חוּט באמצעות המפריד שצוין. הנה דוגמה לשימוש:

7.10. ה fn: startsWith () פוּנקצִיָה

ה fn: startsWith () פונקציה בודקת את הקידומת של a חוּט ומחזירה אמת אם היא תואמת כך למצע נתון:

מחרוזת מתחילה עם 'זה'

7.11. ה fn: substring () פוּנקצִיָה

ה fn: substring () פונקציה יוצרת תשתית ממקור חוּט במדדי ההתחלה והסיום שצוינו. נשתמש בזה כך:

7.12. ה fn: substringAfter () פוּנקצִיָה

ה fn: substringAfter () פונקציה בודקת מקור חוּט עבור תשתית נתונה ומחזירה את חוּט מיד לאחר המופע הראשון של המצע שצוין.

נשתמש בזה כך:

7.13. ה fn: substringBefore () פוּנקצִיָה

ה fn: substringBefore () פונקציה בודקת מקור חוּט עבור תשתית נתונה ומחזירה את חוּט רגע לפני המופע הראשון של המצע שצוין.

בדף ה- JSP שלנו, זה ייראה כך:

7.14. ה fn: toLowerCase () פוּנקצִיָה

ה fn: to LowerCase () פונקציה הופכת את כל התווים ב- חוּט לאותיות קטנות וניתן להשתמש בהם כך:

7.15. ה fn: toUpperCase () פוּנקצִיָה

ה fn: toUpperCase () פונקציה הופכת את כל התווים ב- a חוּט לרישיות:

7.16. ה fn: לקצץ () פוּנקצִיָה

ה fn: לקצץ () פונקציה מסירה רווחים לבנים קודמים ונגררים ב חוּט:

9. מסקנה

במאמר נרחב זה, בחנו את תגי JSTL השונים וכיצד להשתמש בהם.

כרגיל, ניתן למצוא קטעי קוד ב- GitHub.