Мова експресії в 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.

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

Вихід:

JSP Expression Language

  • Вираз: 3 (Оскільки числа 1+2 будуть додані та слугуватимуть результатом)

Заяви керування потоком:

JSP забезпечує потужність Java для вбудовування в додаток. Ми можемо використовувати всі API та будівельні блоки Java in JSP програмування включаючи оператори потоку керування, які включають прийняття рішень і оператори циклу.

Існує два типи операторів керування потоком, описаних нижче;

  1. Заяви про прийняття рішень
  2. Операції циклу

Заяви щодо прийняття рішень:

Інструкція про прийняття рішення в JSP базується на тому, чи встановлена ​​умова істинна чи хибна. Заява буде поводитися відповідно.

Нижче описано два типи заяв про прийняття рішень:

  1. Якщо – інакше
  2. перемикання

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 для всіх інших випадків, коли оператор друкуватиметься у вихідному потоці, а умова буде закрита

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

вихід:

JSP 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: Якщо вищевказані всі випадки не вдаються, тоді він переміститься до частини за замовчуванням і буде виконано, де оператор буде надруковано у вихідному потоці, а умова буде закрита

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

вихід:

Перемикач JSP

  • Результатом у цьому випадку є вівторок, оскільки називається 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>

Пояснення до коду:

  1. Рядок коду 10: Змінна з іменем «num» ініціалізується значенням 5 у тегах виразів
  2. Рядок коду 11-14: У тегах EL «out» — це клас JSP, а «println» — це метод out, який друкує вихідний потік і запускає цикл for, який має три параметри:
    • Змінна i ініціалізується 0,
    • Задається умова, де i має бути меншим за локальну змінну num,
    • І збільшується щоразу, коли цикл виконується.

У тілі “forloop” є клас JSP, який друкує у вихідний потік за допомогою методу println, де ми друкуємо змінну i.

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

вихід:

Цикл JSP For

  • Вихід 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 буде збільшена і цикл ітерації.

Коли ми виконаємо код, ми матимемо наступний результат

Вихід:

Цикл JSP While

  • Результатом цього коду буде «своє 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», і він надрукує вихідний потік.

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

вихід:

JSP Operaторс

  • Перший вихід: число 4 дорівнює 500 (змінна num4, яка є num1*num2)
  • Другий вихід: число 3 дорівнює 60 (змінна num3, яка num1+num2)

Підсумки

  • JSP Expression Language (EL) дозволяє легко отримати доступ до програми для даних, що зберігаються в компонентах javabeans.
  • Це також дозволяє створювати арифметичні та логічні вирази.
  • У тегах EL можна використовувати цілі числа. Числа з плаваючою комою, рядки та логічні значення.
  • У JSP ми також можемо використовувати цикли та оператори прийняття рішень за допомогою тегів EL