Учебники

8) Язык выражений JSP (EL)

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

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

В этом уроке вы узнаете

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

Синтаксис EL : $ (выражение)

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

Чтобы лучше понять, как работает выражение в JSP, мы увидим пример ниже.

В этом примере мы увидим, как EL используется как оператор для добавления двух чисел (1 + 2) и получения выходных данных соответственно.

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP1</title>
  8. </head>
  9. <body>
  10. <a>Expression is:</a>
  11. ${1+2};
  12. </body>
  13. </html>

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

  • Строка кода 11: язык выражений (EL) устанавливается там, где мы добавляем два числа 1 + 2, следовательно, он будет выводить как 3.

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

Выход :

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

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

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

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

Существует два типа операторов управления потоком, описанных ниже;

  1. Принятие решений
  2. Loop Заявления

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

Принятие решения в JSP основано на том, является ли набор условий истинным или ложным. Заявление будет вести себя соответственно.

Существует два типа заявлений о принятии решений, описанных ниже:

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

JSP If-else

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

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

  • Если первое условие истинно, тогда выполняется «if block» и
  • если оно ложно, то выполняется «блок еще»

Синтаксис для оператора if — else :

If(test condition)
{
	 //Block of statements    
}
else
{
    //Block of statements
}

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

Мы собираемся проверить условие «если еще», взяв переменную и проверив значение, если переменная соответствует тому, что она инициализирована:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP2</title>
  8. </head>
  9. <body>
  10. <%! int month=5; %>
  11. <% if(month==2){ %>
  12. <a>Its February</a>
  13. <% }else{ %>
  14. <a>Any month other than February</a>
  15. <%} %>
  16. </body>
  17. </html>

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

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

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

Вывод:

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

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

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

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

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

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP3</title>
  8. </head>
  9. <body>
  10. <%! int week=2; %>
  11. <% switch(week){
  12. case 0:
  13. out.println("Sunday");
  14. break;
  15. case 1:
  16. out.println("Monday");
  17. break;
  18. case 2:
  19. out.println("Tuesday");
  20. break;
  21. case 3:
  22. out.println("wednesday");
  23. break;
  24. case 4:
  25. out.println("Thursday");
  26. break;
  27. case 5:
  28. out.println("Friday");
  29. break;
  30. default:
  31. out.println("Saturday");
  32. }
  33. %>
  34. </body>
  35. </html>

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

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

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

Вывод:

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

  • Выход в этом случае — вторник, поскольку 2-ой случай вызван.

Loop Заявления

JSP для цикла

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

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

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

For(inti=0;i<n;i++)
{
           //block of statements
}

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

У нас есть цикл for, который повторяется до тех пор, пока счетчик не станет меньше указанного числа:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP4</title>
  8. </head>
  9. <body>
  10. <%! int num=5; %>
  11. <% out.println("Numbers are:");
  12. for(int i=0;i<num;i++){
  13. out.println(i);
  14. }%>
  15. </body>
  16. </html>

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

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

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

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

Вывод:

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

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

Цикл JSP while

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

Синтаксис:

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

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

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

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP5</title>
  8. </head>
  9. <body>
  10. <%! int day=2; int i=1; %>
  11. <% while(day>=i){
  12. if(day==i){
  13. out.println("Its Monday");
  14. break;}
  15. i++;}
  16. %>
  17.  
  18. </body>
  19. </html>

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

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

    В этом случае есть «если условие» (день равен i) и «если условие» истинно, то оно выведет выходной поток и выйдет из цикла while, иначе переменная i будет увеличена и цикл будет повторяться.

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

Выход:

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

  • Выход этого кода будет «его понедельник».

Операторы JSP

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

Часто используемые операторы упомянуты ниже:

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

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

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

  • Мы объявляем две переменные num1 и num2, а затем берем переменную num3, где мы используем оператор JSP + by, чтобы добавить num1 и num2 и получить num3.
  • Затем мы проверяем условие, не равно ли num3 0, используя операторы JSP (! =,>) И
  • Затем возьмите другую переменную num4, умножив два num1 и num2, мы получим num4.

Все эти числа должны быть распечатаны как наш вывод:

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru JSP6</title>
  8. </head>
  9. <body>
  10. <% int num1=10; int num2 = 50;
  11. int num3 = num1+num2;
  12. if(num3 != 0 || num3 > 0){
  13. int num4= num1*num2;
  14. out.println("Number 4 is " +num4);
  15. out.println("Number 3 is " +num3);
  16. }%>
  17. </body>
  18. </html>

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

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

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

Вывод:

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

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

Резюме:

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