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.

¿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:
- 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;
- Declaraciones para la toma de decisiones
- 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:
- Si – si no
- 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:
- 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:
- 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:
- Code Línea 10: La variable denominada "num" se inicializa en 5 en las etiquetas de expresión
- 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:
- 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:
- 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:
- 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)






