Язык выражений в JSP
Что такое язык выражений (EL)?
Язык выражений (EL) — это механизм, который упрощает доступ к данным, хранящимся в Java компонент bean и другие объекты, такие как запрос, сеанс, приложение и т. д.
В 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.
Когда вы выполните приведенный выше код, вы получите следующий вывод.
Результат:
- Выражение: 3 (поскольку числа 1+2 будут добавлены и будут служить выходными данными)
Заявления управления потоком:
JSP предоставляет возможности Java для внедрения в приложение. Мы можем использовать все API и строительные блоки Java in JSP-программирование включая операторы потока управления, которые включают в себя принятие решений и операторы цикла.
Ниже описаны два типа операторов управления потоком;
- Заявления для принятия решений
- Заявления цикла
Заявления о принятии решений:
Заявление о принятии решения в JSP основано на том, является ли набор условий истинным или ложным. Оператор будет вести себя соответствующим образом.
Ниже описаны два типа заявлений о принятии решений:
- Если еще
- переключатель
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 для всех остальных случаев, когда оператор будет печататься в выходном потоке, а условие закрывается.
Когда вы выполните приведенный выше код, вы получите следующий вывод.
Вывод:
- Так как месяц у нас 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, следовательно, 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 для цикла
Он используется для перебора элементов для определенного условия и имеет три параметра.
- Счетчик переменных инициализируется
- Условие до выполнения цикла
- Счетчик необходимо увеличить
Синтаксис цикла:
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,
- И i увеличивается при каждой итерации цикла.
В теле «forloop» есть класс JSP, который печатает в выходной поток с помощью метода println, где мы печатаем переменную i.
Когда вы выполните приведенный выше код, вы получите следующий вывод.
Вывод:
- Результат 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>
Расшифровка кода:
- Строка кода 10: Переменная с именем i инициализируется значением 1, а день равен 2 в тегах выражений.
- Строка кода 11–17: В тегах EL есть цикл while, который будет повторяться до тех пор, пока не будет установлено условие, как будто день больше или равен переменной i, и это будет истинно. (day>=i) Внутри этого есть «условие if» (день равен i) и «если условие» истинно, тогда он напечатает выходной поток и выйдет из цикла while, иначе переменная i увеличивается и цикл повторяется.
Когда мы выполним код, мы получим следующий вывод
Выход:
- Результатом этого кода будет «его Monday».
JSP OperaTORs
JSP Operators поддерживает большинство своих арифметических и логических операторов, которые поддерживаются Ява в тегах языка выражений (EL). Ниже приведены часто используемые операторы:
Ниже приведены операторы:
. | Доступ к свойству компонента или записи карты |
[] | Доступ к массиву или элементу списка |
() | Сгруппируйте подвыражение, чтобы изменить порядок вычисления. |
+ | Дополнение |
– | Вычитание или отрицание значения |
* | Умножение |
/ или 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», и он печатает выходной поток.
Когда вы выполните приведенный выше код, вы получите следующий вывод.
Вывод:
- Первый вывод: число 4 равно 500 (переменная num4 равна num1*num2).
- Второй вывод: число 3 равно 60 (переменная num3, которая num1+num2).
Резюме
- Язык выражений JSP (EL) упрощает доступ приложения к данным, хранящимся в компонентах javabeans.
- Это также позволяет создавать арифметические и логические выражения.
- В тегах EL мы можем использовать целые числа. Числа с плавающей запятой, строки и логические значения.
- В JSP мы также можем использовать циклы и операторы принятия решений, используя теги EL.