Linguagem de expressão em JSP
O que é linguagem de expressão (EL)?
Expression Language (EL) é um mecanismo que simplifica a acessibilidade dos dados armazenados em Java componente bean e outros objetos como solicitação, sessão e aplicação, etc.
Existem muitos operadores em JSP que são usados em EL, como operadores aritméticos e lógicos para executar uma expressão. Foi introduzido no JSP 2.0
Sintaxe JSP da Linguagem de Expressão (EL)
Sintaxe de EL :$(expressão)
- Em JSP, tudo o que estiver presente entre chaves é avaliado em tempo de execução e enviado para o fluxo de saída.
- A expressão é uma expressão EL válida e pode ser misturada com um texto estático e pode ser combinada com outra expressão para formar uma expressão maior.
Para ter uma ideia melhor de como a expressão funciona em JSP, veremos o exemplo abaixo. Neste exemplo, veremos como EL é usado como um operador para adicionar dois números (1+2) e obter a saída 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>
Explicação do Código:
- Linha de código 11: A Expression Language (EL) é definida onde adicionamos dois números 1 + 2, portanto, a saída será 3.
Ao executar o código acima, você terá a seguinte saída.
saída:
- A expressão é: 3 (pois os números 1+2 serão somados e servirão como saída)
Declarações de controle de fluxo:
JSP fornece o poder de Java para ser incorporado no aplicativo. Podemos usar todas as APIs e blocos de construção do Java in Programação JSP incluindo instruções de fluxo de controle que incluem a tomada de decisão e as instruções de loop.
Existem dois tipos de instruções de controle de fluxo descritas abaixo;
- Declarações de tomada de decisão
- Demonstrações de Loop
Declarações de tomada de decisão:
A declaração de tomada de decisão em JSP é baseada no fato de o conjunto de condições ser verdadeiro ou falso. A instrução se comportará de acordo.
Existem dois tipos de declarações de tomada de decisão descritas abaixo:
- Se – senão
- interruptor
JSP If-else
A instrução “If else” é básica de todas as instruções de fluxo de controle e diz ao programa para executar determinada seção do código apenas se o teste específico for avaliado como verdadeiro.
Esta condição é usada para testar mais de uma condição, sejam elas verdadeiras ou falsas.
- Se a primeira condição for verdadeira, então “if block” é executado e
- se for falso então “else block” é executado
Sintaxe para instrução if – else:
If(test condition)
{
//Block of statements
}
else
{
//Block of statements
}
Neste exemplo, vamos testar a condição “if else” pegando a variável e verificando o valor se a variável corresponde ao que foi inicializado:
<%@ 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>
Explicação do código:
- Linha de código 10: A variável chamada mês é inicializada com 5 nas tags de expressão
- Linha de código 11: Nas tags EL há “condição if” informando que se o mês for igual a 2 (a condição é testada aqui como verdadeira ou falsa)
- Linha de código 12: Se a condição for verdadeira, a variável mês é 2, então ela será impressa no fluxo de saída
- Linha de código 13-15: Se a condição if acima falhar, ela será movida para a parte else para todos os outros casos em que a instrução será impressa no fluxo de saída e a condição será fechada
Ao executar o código acima, você terá a seguinte saída.
Saída:
- Como o mês que temos é 5, que não é igual a #2 (fevereiro). Portanto, temos a saída “Qualquer mês diferente de fevereiro” (o mês é mencionado como 5, portanto, os outros são executados)
Chave JSP
O corpo da instrução switch é chamado de “bloco switch”.
- O switch case é usado para verificar o número de caminhos de execução possíveis.
- Um switch pode ser usado com todos os tipos de dados
- As instruções switch contêm mais de um caso e um caso padrão
- Ele avalia a expressão e então executa todas as instruções seguindo o caso correspondente
Sintaxe para instrução 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;
}
- O bloco switch começa com um parâmetro, que é o operador que precisa ser passado e
- Depois, há diferentes casos que fornecem condições e o que corresponde ao operador em que o caso é executado.
No exemplo abaixo, definimos uma variável semana, e ela é correspondida com o caso que for verdadeiro. Neste caso, semana é 2, portanto 2nd case é correspondido e a saída é terça-feira:
<%@ 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>
Explicação do Código:
- Linha de código 10: A variável chamada semana é inicializada com 2 nas tags de expressão
- Linha de código 11: Nas tags EL o switch case é iniciado onde semana é passada como parâmetro
- Linha de código 12 – 29: Todos os casos foram mencionados, começando do caso 0 ao caso 5, onde o valor do parâmetro semana corresponde aos casos e, consequentemente, a saída é impressa. Neste caso, o valor é 2, portanto o caso 2 será executado neste caso. Aqui “out” é a classe de JSP que escreve o fluxo de saída para a resposta gerada e “println” é um método dessa classe.
- Linha de código 30-32: Se todos os casos acima falharem, ele será movido para a parte padrão e será executado, onde a instrução será impressa no fluxo de saída e a condição será fechada
Ao executar o código acima, você terá a seguinte saída.
Saída:
- A saída neste caso é terça-feira quando o segundo caso é chamado.
Demonstrações de Loop
JSP para loop
É usado para iterar os elementos para uma determinada condição e possui três parâmetros.
- O contador de variáveis é inicializado
- Condição até que o loop seja executado
- O contador precisa ser incrementado
Para sintaxe de loop:
For(inti=0;i<n;i++)
{
//block of statements
}
Neste exemplo, temos um loop for que itera até que o contador seja menor que o número fornecido:
<%@ 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>
Explicação para o código:
- Linha de código 10: A variável chamada “num” é inicializada com 5 nas tags de expressão
- Linha de código 11-14: Nas tags EL, “out” é a classe de JSP e “println” é o método de out que imprime no fluxo de saída e é iniciado o loop for que possui três parâmetros:
- A variável i é inicializada em 0,
- A condição é dada onde i é menor que a variável local num,
- E i é incrementado a cada iteração do loop de tempo.
No corpo do “forloop”, existe uma classe de JSP que imprime no fluxo de saída usando o método println onde estamos imprimindo a variável i.
Ao executar o código acima, você terá a seguinte saída.
Saída:
- saída Numbers são 0 1 2 3 4. Neste exemplo, estamos dando a condição de que até que o contador seja menor que igual a uma variável, o “loop for” deve ser executado. O num é 5, então o loop começará em 0 e durará até 4 (5 vezes). Daí a saída.
Ciclo JSP While
É usado para iterar o elementos em que possui um parâmetro da condição.
Sintaxe:
While(i<n)
{
//Block of statements
}
Neste exemplo, temos um loop while que iterará até que o dia seja maior que igual ao 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>
Explicação do código:
- Linha de código 10: A variável chamada i é inicializada com 1 e day é 2 nas tags de expressão
- Linha de código 11-17: Nas tags EL, existe um “loop while” que irá iterar até que tenhamos uma condição definida como se o dia for maior ou igual a i variável será verdadeiro. (dia> = i) Dentro disso há “se condição” (dia é igual a i) e “se condição” for verdadeira, então ele imprimirá o fluxo de saída e sairá do loop while, caso contrário, a variável i será incrementada e loop itera.
Ao executarmos o código teremos a seguinte saída
O resultado é:
- A saída deste código será “seu Monday".
JSP Operatoros
JSP Operaoperadores suporta a maioria de seus operadores aritméticos e lógicos que são suportados por Java dentro de tags de linguagem de expressão (EL). Operadores usados com frequência são mencionados abaixo:
A seguir estão os operadores:
| . | Acessar uma propriedade do bean ou entrada do mapa |
| [] | Acesse um array ou elemento de lista |
| () | Agrupe uma subexpressão para alterar a ordem de avaliação |
| + | Adição |
| - | Subtração ou negação de um valor |
| * | Multiplicação |
| /ou div | Divisão |
| % ou modificação | Módulo (resto) |
| == ou equação | Teste de igualdade |
| != ou não | Teste de desigualdade |
| < ou lt | Teste por menos de |
| > ou gt | Teste para maior que |
| <= ou le | Teste para menor ou igual |
| >= ou ge | Teste para maior ou igual |
| && ou e | Teste para AND lógico |
| || ou ou | Teste para OR lógico |
| ! ou não | Complemento booleano unário |
| vazio | Teste para valores de variáveis vazios |
Neste exemplo,
- Estamos declarando duas variáveis num1 e num2 e então pegamos uma variável num3, onde usamos o operador JSP + by para adicionar num1 e num2 e obter num3.
- Em seguida, verificamos uma condição se num3 não é igual a 0 usando operadores JSP (!=, >) e
- Em seguida, pegue outra variável num4, multiplicando dois num1 e num2, obtemos num4.
Todos esses números devem ser impressos como nossa saída:
<%@ 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>
Explicação do código:
- Linha de código 10: A variável chamada num1 é inicializada em 10 e num2 em 50 nas tags de expressão
- Linha de código 11: A variável num3 é a soma de num1 e num2 onde estamos usando o operador de adição
- Linha de código 12-16: Nas tags EL, usamos uma condição OR que é um operador lógico e operadores aritméticos para verificar se num3 é maior que 0 na condição if. O OR é usado quando qualquer condição é verdadeira; nesse caso, ele entrará no “caso if”, onde estamos multiplicando dois números “num1” e “num2” e obtendo a saída em “num4″ e imprimirá o fluxo de saída.
Ao executar o código acima, você terá a seguinte saída.
Saída:
- A primeira saída é o número 4 é 500 (variável num4 que é num1*num2)
- A segunda saída é o número 3 é 60 (variável num3 que num1 + num2)
Resumo
- JSP Expression Language (EL) facilita o acesso ao aplicativo para os dados armazenados nos componentes javabeans.
- Também permite criar expressões aritméticas e lógicas.
- Dentro das tags EL podemos usar números inteiros. Números de ponto flutuante, strings e valores booleanos.
- Em JSP também podemos usar loops e instruções de tomada de decisão usando tags EL






