Язык выражений в JSP

⚡ Умное резюме

Язык выражений в JSP упрощает доступ к данным, хранящимся в JavaБины и неявные объекты, такие как request, session и application. Введенные в JSP 2.0, они поддерживают арифметические, логические и реляционные операторы, а также операторы принятия решений и циклы, написанные внутри тегов EL.

  • 🧮 Определение EL: Упрощает доступ к JavaБины и неявные объекты; добавлены в JSP 2.0.
  • 🔣 Синтаксис: Внутри ${ } должны быть написаны выражения, которые будут вычисляться во время выполнения и выводить результат.
  • 🔀 Принимать решение: Операторы if-else и switch управляют потоком страницы.
  • 🔁 петли: Операторы for и while перебирают условия.
  • OperaТорс: Арифметические, реляционные и логические операторы (eq, lt, and, or, empty).

Язык выражений в JSP

Что такое язык выражений (EL)?

Язык выражений (EL) — это механизм, который упрощает доступ к данным, хранящимся в Java компонент bean и другие объекты, такие как запрос, сеанс, приложение и т. д.

В JSP есть много операторов, которые используются в EL, например, арифметические и логические операторы для выполнения выражения. Они были введены в JSP 2.0

Синтаксис языка выражений JSP (EL)

Синтаксис EL : ${expression}

  • В 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>

Объяснение Code:

  • Code Линия 11: Язык выражений (EL) настроен на сложение двух чисел 1+2, поэтому на выходе будет 3.

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Результат:

Язык выражений JSP

  • Выражение: 3 (поскольку числа 1+2 будут добавлены и будут служить выходными данными)

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

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

Ниже описаны два типа операторов управления потоком;

  1. Заявления для принятия решений
  2. Заявления цикла

Заявления о принятии решений:

Заявление о принятии решения в JSP основано на том, является ли набор условий истинным или ложным. Оператор будет вести себя соответствующим образом.

Ниже описаны два типа заявлений о принятии решений:

  1. Если еще
  2. переключатель

JSP Если-иначе

Оператор «If else» является основным из всех операторов потока управления и указывает программе выполнять определенный раздел кода только в том случае, если конкретный тест оценивается как истинный.

Это условие используется для проверки более чем одного условия, являются ли они истинными или ложными.

  • Если первое условие истинно, то выполняется «if block» и
  • если оно ложно, то выполняется «блок 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>

Расшифровка кода:

  • Code Линия 10: Переменная с именем месяца инициализируется значением 5 в тегах выражений.
  • Code Линия 11: В тегах EL есть «if условие», указывающее, что если месяц равен 2 (условие здесь проверяется как истинное или ложное)
  • Code Линия 12: Если условие истинно, то есть переменная месяца равна 2, она будет напечатана в выходной поток.
  • Code Линия 13-15: Если приведенное выше условие if не выполнено, оно переместится в часть else для всех остальных случаев, когда оператор будет печататься в выходном потоке, а условие закрывается.

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Выход:

JSP Если-иначе

  • Так как месяц у нас 5, что не равно #2 (февраль). Следовательно, у нас есть вывод «Любой месяц, кроме февраля» (месяц указан как 5, следовательно, иначе выполняются)

JSP-переключатель

Тело оператора переключения называется «блоком переключения».

  • Случай переключателя используется для проверки количества возможных путей выполнения.
  • Переключатель можно использовать со всеми типами данных.
  • Операторы переключения содержат более одного варианта и один вариант по умолчанию.
  • Он оценивает выражение, а затем выполняет все инструкции, следующие за соответствующим случаем.

Синтаксис оператора переключения:

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;
}
  • Блок переключателей начинается с одного параметра — оператора, который необходимо передать.
  • Кроме того, существуют разные случаи, которые предоставляют условие, и тот, который соответствует оператору, выполняется.

В приведенном ниже примере мы определили переменную week, которая сопоставляется с тем случаем, который является истинным. В данном случае week равно 2, следовательно, 2.nd регистр совпадает, и результат — вторник:

<%@ 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>

Объяснение Code:

  • Code Линия 10: Переменная с именем неделя инициализируется значением 2 в тегах выражений.
  • Code Линия 11: В тегах EL запускается случай переключения, где в качестве параметра передается неделя.
  • Code Строки 12–29: Были упомянуты все случаи, начиная с случая 0 и заканчивая случаем 5, где значение параметра недели соответствует случаям, и, соответственно, вывод выводится на печать. В данном случае значение равно 2, следовательно, в этом случае будет выполнен вариант 2. Здесь «out» — это класс JSP, который записывает выходной поток для сгенерированного ответа, а «println» — это метод этого класса.
  • Code Линия 30-32: Если во всех вышеперечисленных случаях произойдет сбой, он перейдет к части по умолчанию и будет выполнен, где оператор будет выведен в выходной поток, а условие будет закрыто.

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Выход:

JSP-переключатель

  • Результатом в этом случае является вторник, поскольку вызывается второй случай.

Операторы циклов:

JSP для цикла

Он используется для перебора элементов для определенного условия и имеет три параметра.

  • Счетчик переменных инициализируется
  • Условие до выполнения цикла
  • Счетчик необходимо увеличить

Синтаксис цикла:

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. Code Линия 10: Переменная с именем «num» инициализируется значением 5 в тегах выражений.
  2. Code Линия 11-14: В тегах EL «out» — это класс JSP, а «println» — это метод out, который печатает в выходном потоке и запускается цикл for, имеющий три параметра:
    • Переменная i инициализируется значением 0,
    • Задается условие, при котором i должно быть меньше локальной переменной num,
    • И i увеличивается при каждой итерации цикла.

В теле «forloop» есть класс JSP, который печатает в выходной поток с помощью метода println, где мы печатаем переменную i.

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Выход:

JSP для цикла

  • Результат Numbers равны 0 1 2 3 4. В этом примере мы задаем условие, что до тех пор, пока счетчик не станет меньше, чем равна переменной, должен выполняться цикл for. Число равно 5, поэтому цикл начнется с 0 и будет выполняться до 4 (5 раз). Отсюда вывод.

JSP Цикл while

Он используется для итерации элементы при этом он имеет один параметр состояния.

Синтаксис:

While(i<n)
{
      //Block of statements
}

В этом примере у нас есть цикл while, который будет повторяться до тех пор, пока значение day не станет больше значения счетчика:

<%@ 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>

Расшифровка кода:

  • Code Линия 10: Переменная с именем i инициализируется значением 1, а день равен 2 в тегах выражений.
  • Code Линия 11-17: В тегах EL находится цикл «while», который будет выполняться до тех пор, пока не будет выполнено условие: если значение переменной «day» больше или равно i, то значение будет истинным (day >= i). Внутри цикла есть условие «if condition» (day равно i), и если условие истинно, то будет выведен поток вывода, после чего цикл while завершится; в противном случае значение переменной i будет увеличено, и цикл продолжит выполнение.

Когда мы выполним код, мы получим следующий вывод

Выход:

JSP Цикл while

  • Результатом этого кода будет «его Monday».

JSP OperaTORs

JSP Operators поддерживает большинство своих арифметических и логических операторов, которые поддерживаются Ява в тегах языка выражений (EL). Ниже приведены часто используемые операторы:

Ниже приведены операторы:

. Доступ к свойству компонента или записи карты
[] Доступ к массиву или элементу списка
() Сгруппируйте подвыражение, чтобы изменить порядок вычисления.
+ Дополнение
нижеtracотрицание или истолкование значения
* Умножение
/ или div Разделение
% или мод. По модулю (остаток)
== или уравнение Тест на равенство
!= или нет Тест на неравенство
< или лт Тест менее чем
> или GT Тест на более чем
<= или ле Проверка на меньше или равно
>= или ge Проверка на большее или равное
&& или и Проверка логического И
|| или или Проверка логического ИЛИ
! или нет Унарное логическое дополнение
пустой Проверка пустых значений переменных

В этом примере

  • Мы объявляем две переменные num1 и num2, а затем берем переменную num3, где используем оператор JSP + by, чтобы сложить num1 и num2 и получить num3.
  • Затем мы проверяем условие, не равно ли num3 нулю, используя операторы 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>

Расшифровка кода:

  • Code Линия 10: Переменная с именем num1 инициализируется значением 10, а значение num2 — 50 в тегах выражений.
  • Code Линия 11: Переменная num3 представляет собой сумму чисел num1 и num2, где мы используем оператор сложения.
  • Code Линия 12-16: В тегах EL мы использовали условие ИЛИ, которое представляет собой логический и арифметический операторы, чтобы проверить, больше ли num3, чем 0 в условии if. ИЛИ используется, когда хотя бы одно из условий истинно; в таком случае происходит переход к «условию if», где мы умножаем два числа «num1» и «num2» и получаем результат в «num4», после чего выводится поток вывода.

Когда вы выполните приведенный выше код, вы получите следующий вывод.

Выход:

JSP OperaTORs

  • Первый вывод: число 4 равно 500 (переменная num4 равна num1*num2).
  • Второй вывод: число 3 равно 60 (переменная num3, которая num1+num2).

Часто задаваемые вопросы (FAQ)

Язык выражений (EL) упрощает доступ к данным, хранящимся в JavaБины и неявные объекты, такие как request, session и application. Это позволяет писать лаконичные выражения и операторы непосредственно на JSP-странице вместо Java скриптлеты.

В EL используется синтаксис ${выражение}. Все, что находится внутри фигурных скобок, вычисляется во время выполнения и отправляется в выходной поток. Выражения можно комбинировать со статическим текстом и другими выражениями.

Язык выражений (Expression Language) был представлен в JSP 2.0. Он был разработан для уменьшения необходимости в... Java скриптлеты, предоставляющие простой способ доступа и отображения данных приложения.

ИИ может конвертировать Java скриптлеты преобразуют выражения EL в более понятные, предлагают подходящий оператор и генерируют примеры для циклов и условных операторов, а также помогаютping Разработчики создают более читаемые JSP-страницы быстрее.

Да. Искусственный интеллект может выявлять некорректный синтаксис EL, несоответствие фигурных скобок, отсутствие свойств компонентов и проблемы с типами, а затем предлагать исправления, уменьшая количество ошибок во время выполнения на страницах JSP.

Подведем итог этой публикации следующим образом: