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