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:

Linguagem de Expressão JSP

  • 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;

  1. Declarações de tomada de decisão
  2. 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:

  1. Se – senão
  2. 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:

JSP If-else

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

Chave JSP

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

  1. Linha de código 10: A variável chamada “num” é inicializada com 5 nas tags de expressão
  2. 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:

JSP para loop

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

Ciclo JSP While

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

JSP Operatoros

  • 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