Lenguaje de expresión en JSP

¿Qué es el lenguaje de expresión (EL)?

El lenguaje de expresión (EL) es un mecanismo que simplifica la accesibilidad de los datos almacenados en Java componente bean y otros objetos como solicitud, sesión y aplicación, etc.

Hay muchos operadores en JSP que se utilizan en EL, como operadores aritméticos y lógicos, para realizar una expresión. Se introdujeron en JSP 2.0.

Sintaxis JSP del lenguaje de expresión (EL)

Sintaxis de EL :$(expresión)

  • En JSP, todo lo que esté presente entre llaves se evalúa en tiempo de ejecución y se envía al flujo de salida.
  • La expresión es una expresión EL válida y se puede mezclar con un texto estático y se puede combinar con otra expresión para formar una expresión más grande.

Para tener una mejor idea de cómo funcionan las expresiones en JSP, veremos el siguiente ejemplo. En este ejemplo, veremos cómo se utiliza EL como operador para sumar dos números (1+2) y obtener el resultado respectivamente.

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

Explicación del código:

  • Línea de código 11: El lenguaje de expresión (EL) se establece donde sumamos dos números 1+2, por lo que el resultado será 3.

Cuando ejecute el código anterior, tendrá el siguiente resultado.

Salida:

Lenguaje de expresión JSP

  • La expresión es: 3 (ya que los números 1+2 se sumarán y servirán como resultado)

Declaraciones de control de flujo:

JSP proporciona el poder de Java para ser incorporado en la aplicación. Podemos utilizar todas las API y componentes básicos de Java in programación JSP incluyendo declaraciones de flujo de control que incluyen la toma de decisiones y las declaraciones de bucle.

Hay dos tipos de declaraciones de control de flujo que se describen a continuación;

  1. Declaraciones para la toma de decisiones
  2. Declaraciones de bucle

Declaraciones para la toma de decisiones:

La declaración de toma de decisiones en JSP se basa en si la condición establecida es verdadera o falsa. La declaración se comportará en consecuencia.

Hay dos tipos de declaraciones para la toma de decisiones que se describen a continuación:

  1. Si – si no
  2. cambiar

JSP si-si no

La declaración "If else" es básica de todas las declaraciones de flujo de control y le dice al programa que ejecute cierta sección de código solo si la prueba particular se evalúa como verdadera.

Esta condición se utiliza para comprobar si más de una condición es verdadera o falsa.

  • Si la primera condición es verdadera, entonces se ejecuta "si bloque" y
  • si es falso entonces se ejecuta “else block”

Sintaxis de la declaración if – else:

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

En este ejemplo, vamos a probar la condición “if else” tomando una variable y verificando el valor si la variable coincide con lo que se inicializó:

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

Explicación del código:

  • Línea de código 10: La variable denominada mes se inicializa en 5 en las etiquetas de expresión
  • Línea de código 11: En las etiquetas EL hay una "condición si" que indica que si el mes es igual a 2 (aquí la condición se prueba como verdadera o falsa)
  • Línea de código 12: Si la condición es verdadera, es decir, la variable mes es 2, se imprimirá en el flujo de salida.
  • Línea de código 13-15: Si la condición anterior falla, se moverá a la parte else para todos los demás casos en los que la declaración se imprimirá en el flujo de salida y la condición se cerrará.

Cuando ejecute el código anterior, tendrá el siguiente resultado.

Salida:

JSP si-si no

  • Dado que el mes que tenemos es 5, que no es igual a #2 (febrero), tenemos la salida “Cualquier mes que no sea febrero” (el mes se menciona como 5, por lo tanto, se ejecutan los demás).

Conmutador JSP

El cuerpo de la declaración de cambio se denomina "bloque de cambio".

  • El caso del interruptor se utiliza para verificar el número de rutas de ejecución posibles.
  • Se puede utilizar un conmutador con todos los tipos de datos
  • Las declaraciones de cambio contienen más de un caso y un caso predeterminado.
  • Evalúa la expresión y luego ejecuta todas las declaraciones que siguen al caso correspondiente.

Sintaxis de la declaración de cambio:

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;
}
  • El bloque de conmutación comienza con un parámetro, que es el operador que debe pasarse y
  • Luego, hay diferentes casos que proporcionan la condición y se ejecuta el caso que coincida con el operador.

En el siguiente ejemplo, hemos definido una variable semana y se la compara con el caso que sea verdadero. En este caso, semana es 2, por lo tanto, 2.nd El caso coincide y el resultado es el martes:

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

Explicación del código:

  • Línea de código 10: La variable denominada semana se inicializa en 2 en las etiquetas de expresión
  • Línea de código 11: En las etiquetas EL se inicia el caso de cambio donde se pasa la semana como parámetro
  • Línea de código 12 – 29: Todos los casos se han mencionado desde el caso 0 hasta el caso 5, donde el valor del parámetro de semana coincide con los casos y, en consecuencia, se imprime el resultado. En este caso, el valor es 2, por lo que en este caso se ejecutará el caso 2. Aquí "out" es la clase de JSP que escribe el flujo de salida para la respuesta generada y "println" es un método de esa clase.
  • Línea de código 30-32: Si todos los casos anteriores fallan, se moverá a la parte predeterminada y se ejecutará, donde la declaración se imprimirá en el flujo de salida y la condición se cerrará.

Cuando ejecute el código anterior, tendrá el siguiente resultado.

Salida:

Conmutador JSP

  • La salida en este caso es el martes, ya que se denomina segundo caso.

Declaraciones de bucle

JSP para bucle

Se utiliza para iterar los elementos de una determinada condición y tiene tres parámetros.

  • Se inicializa el contador de variables
  • Condición hasta que el bucle debe ejecutarse
  • El contador debe incrementarse

Sintaxis del bucle For:

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

En este ejemplo, tenemos un bucle for que itera hasta que el contador sea menor que el número dado:

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

Explicación del código:

  1. Línea de código 10: La variable denominada "num" se inicializa en 5 en las etiquetas de expresión
  2. Línea de código 11-14: En las etiquetas EL, "out" es la clase de JSP y "println" es el método de out que imprime en el flujo de salida y se inicia el bucle for que tiene tres parámetros:
    • La variable i se inicializa a 0,
    • Se da la condición de que i sea menor que el número de variable local,
    • Y i se incrementa cada vez que se itera el bucle.

En el cuerpo de "forloop", hay una clase de JSP que imprime en el flujo de salida utilizando el método println donde imprimimos la variable i.

Cuando ejecute el código anterior, tendrá el siguiente resultado.

Salida:

JSP para bucle

  • Salida Numbers son 0 1 2 3 4. En este ejemplo, estamos dando la condición de que hasta que el contador sea menor que igual a una variable, se debe ejecutar el "bucle for". El número es 5, por lo que el ciclo comenzará desde 0 y se ejecutará hasta 4 (5 veces). De ahí la salida.

JSP mientras bucle

Se utiliza para iterar el elementos donde tiene un parámetro de la condición.

Sintaxis:

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

En este ejemplo, tenemos un bucle while que iterará hasta que el día sea mayor que igual al contador:

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

Explicación del código:

  • Línea de código 10: La variable denominada i se inicializa en 1 y el día es 2 en las etiquetas de expresión
  • Línea de código 11-17: En las etiquetas EL, hay un "bucle while" que se iterará hasta que tengamos una condición establecida, como si el día fuera mayor o igual a la variable i sería verdadero. (día>=i) Dentro de eso hay "si la condición" (el día es igual a i) y "si la condición" es verdadera, entonces imprimirá el flujo de salida y saldrá del ciclo while; de ​​lo contrario, la variable i se incrementa y el bucle se itera.

Cuando ejecutamos el código tendremos la siguiente salida

La salida es:

JSP mientras bucle

  • La salida de este código será “su Monday.

JSP Operatoros

JSP Operators admite la mayoría de sus operadores aritméticos y lógicos que son compatibles con Java Dentro de las etiquetas de lenguaje de expresión (EL). A continuación se mencionan los operadores que se utilizan con frecuencia:

Los siguientes son los operadores:

. Acceder a una propiedad de bean o entrada de mapa
[] Acceder a una matriz o elemento de lista
() Agrupe una subexpresión para cambiar el orden de evaluación
+ Adición
Resta o negación de un valor
* Multiplicación
/ o div División
% o modificación Módulo (resto)
== o ecuación Prueba de igualdad
!= o ne Prueba de desigualdad
< o lt Prueba por menos de
> o gt Prueba para más de
<= o archivo Prueba para menos o igual
>= o ge Prueba de mayor o igual
&& o y Prueba de AND lógico
|| o o Prueba de OR lógico
! O no Complemento booleano unario
Vacío Prueba de valores de variables vacías

En este ejemplo,

  • Estamos declarando dos variables num1 y num2 y luego tomamos una variable num3, donde usamos el operador JSP + by para sumar num1 y num2 y obtener num3.
  • Luego verificamos una condición si num3 no es igual a 0 utilizando operadores JSP (!=, >) y
  • Luego tomamos otra variable num4 multiplicando dos num1 y num2 obtenemos num4.

Todos estos números deben imprimirse como nuestro resultado:

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

Explicación del código:

  • Línea de código 10: La variable denominada num1 se inicializa en 10 y num2 en 50 en las etiquetas de expresión
  • Línea de código 11: La variable num3 es la suma de num1 y num2, donde usamos el operador de suma.
  • Línea de código 12-16: En las etiquetas EL, hemos utilizado una condición OR que es un operador lógico y operadores aritméticos para comprobar si num3 es mayor que 0 en la condición if. El OR se usa cuando alguna condición es verdadera, en tal caso ingresará el "caso si" donde multiplicamos dos números "num1" y "num2" y obtenemos la salida en "num4" e imprimirá el flujo de salida.

Cuando ejecute el código anterior, tendrá el siguiente resultado.

Salida:

JSP Operatoros

  • La primera salida es que el número 4 es 500 (variable num4 que es num1*num2)
  • La segunda salida es que el número 3 es 60 (variable num3 que num1+num2)

Resumen

  • JSP Expression Language (EL) facilita el acceso a la aplicación para los datos almacenados en los componentes de javabeans.
  • También permite crear expresiones que son tanto aritméticas como lógicas.
  • Dentro de las etiquetas EL podemos utilizar números enteros, números de punto flotante, cadenas y valores booleanos.
  • En JSP también podemos usar bucles y declaraciones de toma de decisiones usando etiquetas EL.