Учебное пособие по языку выражений JSP (EL)

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

Язык выражений (EL) — это механизм, который упрощает доступ к данным, хранящимся в Java компонент компонента и другие объекты, такие как запрос, сеанс, приложение и т. д. В JSP есть много операторов, которые используются в EL, например арифметические и логические операторы, для выполнения выражения. Он был представлен в JSP 2.0.

Синтаксис языка выражений JSP (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.

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

Результат:

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

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

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

JSP предоставляет возможности Java для внедрения в приложение. Мы можем использовать все API и строительные блоки Java в 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>

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

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

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

Вывод:

JSP Если-иначе

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

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

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

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

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

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

В приведенном ниже примере

Мы определили переменную неделю, и она сопоставляется с тем случаем, который верен. В этом случае неделя равна 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>

Объяснение кода:

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

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

Вывод:

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

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

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

Вывод:

JSP для цикла

  • Выходные числа: 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, и это будет истинно. (day>=i) Внутри этого есть «условие if» (день равен i) и «если условие» истинно, тогда он напечатает выходной поток и выйдет из цикла while, иначе переменная i увеличивается и цикл повторяется.

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

Выход:

JSP Цикл while

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

JSP-операторы

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

Ниже приведены часто используемые операторы:

Фоллоwing это операторы:

. Доступ к свойству компонента или записи карты
[] Доступ к массиву или элементу списка
() Сгруппируйте подвыражение, чтобы изменить порядок вычисления.
+ Дополнение
Вычитание или отрицание значения
* Умножение
/ или div Разделение
% или мод. По модулю (остаток)
== или уравнение Тест на равенство
!= или нет Тест на неравенство
< или лт Тест менее чем
> или GT Тест на более чем
<= или ле Проверка на меньше или равно
>= или 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 мы использовали условие OR, которое является логическим оператором, и арифметические операторы, чтобы проверить, больше ли num3 0 в условии if. OR используется, когда какое-либо одно условие истинно, в таком случае он войдет в «случай if», где мы умножаем два числа «num1» и «num2» и получаем вывод в «num4», и он печатает выходной поток.

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

Вывод:

JSP-операторы

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

Выводы

  • Язык выражений JSP (EL) упрощает доступ приложения к данным, хранящимся в компонентах javabeans.
  • Это также позволяет создавать арифметические и логические выражения.
  • В тегах EL мы можем использовать целые числа. Числа с плавающей запятой, строки и логические значения.
  • В JSP мы также можем использовать циклы и операторы принятия решений, используя теги EL.