Lenguaje de expresión en JSP

⚡ Resumen inteligente

El lenguaje de expresiones en JSP simplifica el acceso a los datos almacenados en JavaBeans y objetos implícitos como request, session y application. Introducido en JSP 2.0, admite operadores aritméticos, lógicos y relacionales, además de sentencias de toma de decisiones y bucles escritos dentro de etiquetas EL.

  • 🧮 EL definido: Simplifica el acceso a JavaBeans y objetos implícitos; añadidos en JSP 2.0.
  • 🔣 Sintaxis: Escribe expresiones dentro de ${ } para evaluarlas en tiempo de ejecución y mostrar el resultado.
  • 🔀 Toma de decisiones: Las sentencias if-else y switch controlan el flujo de la página.
  • 🔁 Bucles: Las sentencias for y while iteran sobre las condiciones.
  • Operatores: Operadores aritméticos, relacionales y lógicos (eq, lt, and, or, empty).

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 de Code:

  • Code Línea 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.

Resultado:

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:

  • Code Línea 10: La variable denominada mes se inicializa en 5 en las etiquetas de expresión
  • Code Línea 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)
  • Code Línea 12: Si la condición es verdadera, es decir, la variable mes es 2, se imprimirá en el flujo de salida.
  • Code Línea 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 llamada semana, y se compara con el caso que sea verdadero. En este caso, la semana es 2, por lo tanto, 2nd 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 de Code:

  • Code Línea 10: La variable denominada semana se inicializa en 2 en las etiquetas de expresión
  • Code Línea 11: En las etiquetas EL se inicia el caso de cambio donde se pasa la semana como parámetro
  • Code Línea 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.
  • Code Línea 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.

Sentencias 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. Code Línea 10: La variable denominada "num" se inicializa en 5 en las etiquetas de expresión
  2. Code Línea 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

  • Resultado 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:

  • Code Línea 10: La variable denominada i se inicializa en 1 y el día es 2 en las etiquetas de expresión
  • Code Línea 11-17: En las etiquetas EL, hay un bucle "while" que se repetirá hasta que se cumpla una condición: si el día es mayor o igual a la variable i, será verdadero (día>=i). Dentro de este, hay una condición "if" (día es igual a i) y si la condición "if" es verdadera, se imprimirá el flujo de salida y se saldrá del bucle while; de ​​lo contrario, la variable i se incrementará y el bucle continuará.

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
Subtracción 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 para ver si num3 no es igual a 0 usando 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:

  • Code Línea 10: La variable denominada num1 se inicializa en 10 y num2 en 50 en las etiquetas de expresión
  • Code Línea 11: La variable num3 es la suma de num1 y num2, donde usamos el operador de suma.
  • Code Línea 12-16: En las etiquetas EL, hemos utilizado una condición OR, que combina operadores lógicos y aritméticos, para comprobar si num3 es mayor que 0 en la condición if. La condición OR se aplica cuando alguna de las condiciones es verdadera; en ese caso, se ejecuta la condición if, donde se multiplican los números num1 y num2, obteniendo como resultado num4, y se imprime 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)

Preguntas Frecuentes

El lenguaje de expresiones (EL) simplifica el acceso a los datos almacenados en JavaBeans y objetos implícitos como request, session y application. Permite escribir expresiones y operadores concisos directamente en una página JSP en lugar de Java guiones.

EL utiliza la sintaxis ${expresión}. Todo lo que se encuentra dentro de las llaves se evalúa en tiempo de ejecución y se envía al flujo de salida. Las expresiones se pueden combinar con texto estático y otras expresiones.

El lenguaje de expresiones se introdujo en JSP 2.0. Fue diseñado para reducir la necesidad de Java Los scriptlets proporcionan una forma sencilla de acceder y mostrar los datos de la aplicación.

La IA puede convertir Java convierte fragmentos de código en expresiones EL más limpias, sugiere el operador correcto y genera ejemplos para bucles y condicionales, ayudaping Los desarrolladores escriben páginas JSP más legibles con mayor rapidez.

Sí. La IA puede detectar sintaxis EL no válida, llaves mal colocadas, propiedades de bean faltantes y problemas de tipo, y luego sugerir correcciones, reduciendo así los errores en tiempo de ejecución en las páginas JSP.

Resumir este post con: