Мова експресії в JSP
Що таке мова експресії (EL)?
Expression Language (EL) — це механізм, який спрощує доступність даних, що зберігаються в Java компонент bean та інші об’єкти, такі як запит, сесія та програма тощо.
У JSP є багато операторів, які використовуються в EL, наприклад арифметичні та логічні оператори для виконання виразу. Він був представлений у JSP 2.0
JSP Syntax of Expression Language (EL)
Синтаксис EL :$(вираз)
- У JSP все, що міститься в фігурних дужках, оцінюється під час виконання й надсилається у вихідний потік.
- Вираз є дійсним виразом EL, і його можна змішувати зі статичним текстом і поєднувати з іншим виразом для створення більшого виразу.
Щоб краще зрозуміти, як працює вираз у JSP, ми розглянемо приклад нижче. У цьому прикладі ми побачимо, як EL використовується як оператор для додавання двох чисел (1+2) і отримання результату відповідно.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP1</title> </head> <body> <a>Expression is:</a> ${1+2}; </body> </html>
Пояснення коду:
- Рядок коду 11: Мова виразів (EL) встановлена так, що ми додаємо два числа 1+2, отже, виведеться як 3.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
Вихід:
- Вираз: 3 (Оскільки числа 1+2 будуть додані та слугуватимуть результатом)
Заяви керування потоком:
JSP забезпечує потужність Java для вбудовування в додаток. Ми можемо використовувати всі API та будівельні блоки Java in JSP програмування включаючи оператори потоку керування, які включають прийняття рішень і оператори циклу.
Існує два типи операторів керування потоком, описаних нижче;
- Заяви про прийняття рішень
- Операції циклу
Заяви щодо прийняття рішень:
Інструкція про прийняття рішення в JSP базується на тому, чи встановлена умова істинна чи хибна. Заява буде поводитися відповідно.
Нижче описано два типи заяв про прийняття рішень:
- Якщо – інакше
- перемикання
JSP If-else
Інструкція «Якщо інакше» є базовою серед усіх інструкцій потоку керування, і вона повідомляє програмі виконати певну частину коду, лише якщо певний тест оцінюється як істинний.
Ця умова використовується для перевірки кількох умов, чи є вони істинними чи хибними.
- Якщо перша умова істинна, тоді виконується «блок if».
- якщо він false, виконується «блок else».
Синтаксис оператора if – else:
If(test condition) { //Block of statements } else { //Block of statements }
У цьому прикладі ми збираємося перевірити умову «if else», взявши змінну та перевіривши значення, чи збігається змінна з тим, що вона ініціалізована:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP2</title> </head> <body> <%! int month=5; %> <% if(month==2){ %> <a>Its February</a> <% }else{ %> <a>Any month other than February</a> <%} %> </body> </html>
Пояснення коду:
- Рядок коду 10: Змінна з назвою місяць ініціалізується значенням 5 у тегах виразу
- Рядок коду 11: У тегах EL є «умова якщо», яка вказує, що якщо місяць дорівнює 2 (умова тут перевіряється як істинна чи хибна)
- Рядок коду 12: Якщо умова істинна, тобто змінна місяць дорівнює 2, тоді вона буде надрукована у вихідний потік
- Рядок коду 13-15: Якщо наведена вище умова if не виконується, тоді вона переміститься до частини else для всіх інших випадків, коли оператор друкуватиметься у вихідному потоці, а умова буде закрита
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Оскільки місяць у нас дорівнює 5, що не дорівнює №2 (лютий). Отже, ми маємо результат «Будь-який місяць, окрім лютого» (місяць згадується як 5, отже виконуються інші)
Перемикач JSP
Тіло оператора switch називається «блоком switch».
- Регістр switch використовується для перевірки кількості можливих шляхів виконання.
- Перемикач можна використовувати з усіма типами даних
- Інструкції switch містять більше ніж один випадок і один випадок за замовчуванням
- Він обчислює вираз, а потім виконує всі оператори після відповідного регістру
Синтаксис оператора switch:
switch (operator) { Case 1: Block of statements break; Case 2: Block of statements break; case n: Block of statements break; default: Block of statements break; }
- Блок Switch починається з одного параметра, який є оператором, який потрібно передати and
- Потім є різні випадки, які забезпечують умову, і той випадок, який відповідає оператору, виконується.
У наведеному нижче прикладі ми визначили змінну тиждень, і вона зіставляється з регістром залежно від того, що є істинним. У цьому випадку тиждень дорівнює 2, отже, 2nd регістр збігається, а результатом є вівторок:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP3</title> </head> <body> <%! int week=2; %> <% switch(week){ case 0: out.println("Sunday"); break; case 1: out.println("Monday"); break; case 2: out.println("Tuesday"); break; case 3: out.println("wednesday"); break; case 4: out.println("Thursday"); break; case 5: out.println("Friday"); break; default: out.println("Saturday"); } %> </body> </html>
Пояснення коду:
- Рядок коду 10: Змінна з назвою тиждень ініціалізується значенням 2 у тегах виразу
- Рядок коду 11: У тегах EL починається регістр перемикання, де тиждень передається як параметр
- Кодовий рядок 12 – 29: Усі випадки були згадані, починаючи від випадку 0 до випадку 5, де значення параметра тижня збігається з випадками, і відповідно виводиться друк. У цьому випадку значення дорівнює 2, тому в цьому випадку буде виконано випадок 2. Тут «out» — це клас JSP, який записує вихідний потік для згенерованої відповіді, а «println» — це метод цього класу.
- Рядок коду 30-32: Якщо вищевказані всі випадки не вдаються, тоді він переміститься до частини за замовчуванням і буде виконано, де оператор буде надруковано у вихідному потоці, а умова буде закрита
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Результатом у цьому випадку є вівторок, оскільки називається 2-й випадок.
Операції циклу
Цикл JSP For
Він використовується для ітерації елементів для певної умови та має три параметри.
- Лічильник змінної ініціалізовано
- Умова до виконання циклу
- Лічильник потрібно збільшити
Синтаксис циклу For:
For(inti=0;i<n;i++) { //block of statements }
У цьому прикладі ми маємо цикл for, який повторюється, доки лічильник не стане меншим за задане число:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP4</title> </head> <body> <%! int num=5; %> <% out.println("Numbers are:"); for(int i=0;i<num;i++){ out.println(i); }%> </body> </html>
Пояснення до коду:
- Рядок коду 10: Змінна з іменем «num» ініціалізується значенням 5 у тегах виразів
- Рядок коду 11-14: У тегах EL «out» — це клас JSP, а «println» — це метод out, який друкує вихідний потік і запускає цикл for, який має три параметри:
- Змінна i ініціалізується 0,
- Задається умова, де i має бути меншим за локальну змінну num,
- І збільшується щоразу, коли цикл виконується.
У тілі “forloop” є клас JSP, який друкує у вихідний потік за допомогою методу println, де ми друкуємо змінну i.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Вихід Numbers дорівнює 0 1 2 3 4. У цьому прикладі ми задаємо умову, що доки лічильник не стане меншим ніж дорівнює змінній, має бути виконано «цикл for». Число дорівнює 5, тому цикл розпочнеться з 0 і триватиме до 4 (5 разів). Звідси вихід.
Цикл JSP While
Він використовується для повторення елементи де він має один параметр умови.
Синтаксис:
While(i<n) { //Block of statements }
У цьому прикладі ми маємо цикл while, який повторюватиметься до тих пір, поки день не буде більшим за лічильник:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP5</title> </head> <body> <%! int day=2; int i=1; %> <% while(day>=i){ if(day==i){ out.println("Its Monday"); break;} i++;} %> </body> </html>
Пояснення коду:
- Рядок коду 10: Змінна з іменем i ініціалізується значенням 1, а день — 2 у тегах виразу
- Рядок коду 11-17: У тегах EL є «цикл while», який повторюватиметься, доки ми не встановимо умову, згідно з якою змінна дня буде більше або дорівнює i. (день>=i) У межах цього є «умова якщо» (день дорівнює i) і «умова якщо» істинна, тоді він друкуватиме вихідний потік і вийде з циклу while, інакше змінна i буде збільшена і цикл ітерації.
Коли ми виконаємо код, ми матимемо наступний результат
Вихід:
- Результатом цього коду буде «своє Monday".
JSP Operaторс
JSP Operators підтримує більшість своїх арифметичних і логічних операторів, які підтримуються Ява в тегах мови вираження (EL). Нижче наведено оператори, які часто використовуються:
Ось оператори:
. | Доступ до властивості компонента або запису карти |
[] | Доступ до масиву або елемента списку |
() | Згрупуйте підвираз, щоб змінити порядок обчислення |
+ | Доповнення |
- | Віднімання або заперечення значення |
* | Множення |
/ або div | Роздільна |
% або мод | Modulo (залишок) |
== або екв | Тест на рівність |
!= або ne | Перевірка нерівності |
< або lt | Тест на менше ніж |
> або gt | Тест на більше ніж |
<= або le | Тест на менше або рівне |
>= або ge | Перевірка на більше або рівне |
&& або і | Тест на логічне І |
|| або або | Тест на логічне АБО |
! чи ні | Унарне логічне доповнення |
порожній | Перевірте значення порожніх змінних |
У цьому прикладі
- Ми оголошуємо дві змінні num1 і num2, а потім беремо змінну num3, де використовуємо оператор JSP + by, щоб додати num1 і num2 і отримати num3.
- Потім ми перевіряємо умову, чи num3 не дорівнює 0, використовуючи оператори JSP (!= , >) і
- Потім візьмемо іншу змінну num4, помноживши два num1 і num2, отримаємо num4.
Ці всі числа повинні бути роздруковані як наш результат:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru JSP6</title> </head> <body> <% int num1=10; int num2 = 50; int num3 = num1+num2; if(num3 != 0 || num3 > 0){ int num4= num1*num2; out.println("Number 4 is " +num4); out.println("Number 3 is " +num3); }%> </body> </html>
Пояснення коду:
- Рядок коду 10: Змінна з іменем num1 ініціалізується на 10, а num2 на 50 у тегах виразу
- Рядок коду 11: Змінна num3 є сумою num1 і num2, де ми використовуємо оператор додавання
- Рядок коду 12-16: У тегах EL ми використовували умову АБО, яка є логічним оператором і арифметичними операторами, щоб перевірити, чи є num3 більшим за 0 в умові if. АБО використовується, коли виконується будь-яка одна умова, і в такому випадку він увійде у «випадок якщо», коли ми множимо два числа «num1» і «num2» і отримуємо вивід у «num4», і він надрукує вихідний потік.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Перший вихід: число 4 дорівнює 500 (змінна num4, яка є num1*num2)
- Другий вихід: число 3 дорівнює 60 (змінна num3, яка num1+num2)
Підсумки
- JSP Expression Language (EL) дозволяє легко отримати доступ до програми для даних, що зберігаються в компонентах javabeans.
- Це також дозволяє створювати арифметичні та логічні вирази.
- У тегах EL можна використовувати цілі числа. Числа з плаваючою комою, рядки та логічні значення.
- У JSP ми також можемо використовувати цикли та оператори прийняття рішень за допомогою тегів EL