Linguaggio di espressione in JSP

Cos'รจ il linguaggio di espressione (EL)?

Expression Language (EL) รจ un meccanismo che semplifica l'accessibilitร  dei dati archiviati Java componente bean e altri oggetti come richiesta, sessione e applicazione, ecc.

Ci sono molti operatori in JSP che vengono utilizzati in EL come operatori aritmetici e logici per eseguire un'espressione. รˆ stato introdotto in JSP 2.0

Sintassi JSP del linguaggio di espressione (EL)

Sintassi di EL :$(espressione)

  • In JSP, qualunque cosa presente tra le parentesi graffe viene valutata in fase di esecuzione e inviata al flusso di output.
  • L'espressione รจ un'espressione EL valida e puรฒ essere mischiata con un testo statico e combinata con altre espressioni per formare un'espressione piรน ampia.

Per avere un'idea migliore di come funziona l'espressione in JSP, vedremo l'esempio seguente. In questo esempio, vedremo come EL viene utilizzato come operatore per sommare due numeri (1+2) e ottenere rispettivamente l'output.

<%@ 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>

Spiegazione del codice:

  • Riga di codice 11: Expression Language (EL) รจ impostato dove stiamo aggiungendo due numeri 1+2, quindi darร  l'output come 3.

Quando esegui il codice sopra, avrai il seguente output.

Uscita:

Linguaggio di espressione JSP

  • L'espressione รจ: 3 (Poichรฉ i numeri 1+2 verranno aggiunti e serviranno come output)

Dichiarazioni sul controllo del flusso:

JSP fornisce la potenza di Java da incorporare nell'applicazione. Possiamo utilizzare tutte le API e gli elementi costitutivi di Java in Programmazione JSP comprese le dichiarazioni del flusso di controllo che includono il processo decisionale e le dichiarazioni del ciclo.

Esistono due tipi di istruzioni di controllo del flusso descritte di seguito;

  1. Dichiarazioni decisionali
  2. Dichiarazioni di loop

Dichiarazioni decisionali:

La dichiarazione decisionale in JSP si basa sul fatto che la condizione impostata sia vera o falsa. La dichiarazione si comporterร  di conseguenza.

Esistono due tipi di dichiarazioni decisionali descritte di seguito:

  1. Se altro
  2. interruttore

JSP Se-altro

L'istruzione "If else" รจ la base di tutte le istruzioni del flusso di controllo e indica al programma di eseguire una determinata sezione di codice solo se il test particolare risulta vero.

Questa condizione viene utilizzata per verificare piรน di una condizione se sono vere o false.

  • Se la prima condizione รจ vera allora viene eseguito โ€œif blockโ€ e
  • se รจ falso allora viene eseguito โ€œelse blockโ€.

Sintassi per l'istruzione if โ€“ else:

If(test condition)
{
	 //Block of statements    
}
else
{
    //Block of statements
}

In questo esempio, testeremo la condizione "if else" prendendo la variabile e controllando il valore se la variabile corrisponde a ciรฒ per cui รจ inizializzata:

<%@ 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>

Spiegazione del codice:

  • Riga di codice 10: La variabile denominata mese viene inizializzata su 5 nei tag dell'espressione
  • Riga di codice 11: Nei tag EL c'รจ "se condizione" che indica che se il mese รจ uguale a 2 (la condizione viene verificata qui come vera o falsa)
  • Riga di codice 12: Se la condizione รจ vera, ovvero la variabile mese รจ 2, verrร  stampata nel flusso di output
  • Riga di codice 13-15: Se la condizione if di cui sopra fallisce, verrร  spostata nella parte else per tutti gli altri casi in cui l'istruzione verrร  stampata nel flusso di output e la condizione viene chiusa

Quando esegui il codice sopra, avrai il seguente output.

Produzione:

JSP Se-altro

  • Poichรฉ il mese che abbiamo รจ 5 che non รจ uguale a #2 (febbraio). Quindi, abbiamo l'output "Qualsiasi mese diverso da febbraio" (il mese รจ menzionato come 5 quindi else viene eseguito)

Interruttore JSP

Il corpo dell'istruzione switch รจ chiamato "blocco switch".

  • Il caso dello switch viene utilizzato per verificare il numero di possibili percorsi di esecuzione.
  • Uno switch puรฒ essere utilizzato con tutti i tipi di dati
  • Le istruzioni switch contengono piรน di un caso e un caso predefinito
  • Valuta l'espressione quindi esegue tutte le istruzioni che seguono il caso corrispondente

Sintassi per l'istruzione 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;
}
  • Il blocco switch inizia con un parametro, ovvero l'operatore che deve essere passato e
  • Poi ci sono diversi casi che forniscono una condizione e, a seconda di quale delle corrispondenze con l'operatore, il caso viene eseguito.

Nell'esempio seguente, abbiamo definito una variabile settimana, e viene abbinata al caso, qualunque sia vero. In questo caso, la settimana รจ 2, quindi 2nd case รจ abbinato e l'output รจ martedรฌ:

<%@ 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>

Spiegazione del codice:

  • Riga di codice 10: La variabile denominata week viene inizializzata su 2 nei tag dell'espressione
  • Riga di codice 11: Nei tag EL il caso di commutazione viene avviato dove viene passata la settimana come parametro
  • Riga di codice 12 โ€“ 29: Sono stati menzionati tutti i casi a partire dal caso 0 fino al caso 5 dove il valore del parametro week รจ abbinato ai casi, e di conseguenza l'output viene stampato. In questo caso, il valore รจ 2 quindi verrร  eseguito il caso 2. Qui "out" รจ la classe di JSP che scrive il flusso di output per la risposta generata e "println" รจ un metodo di quella classe.
  • Riga di codice 30-32: Se tutti i casi precedenti falliscono, verrร  spostata nella parte predefinita e verrร  eseguita, dove l'istruzione verrร  stampata nel flusso di output e la condizione verrร  chiusa

Quando esegui il codice sopra, avrai il seguente output.

Produzione:

Interruttore JSP

  • L'output in questo caso รจ martedรฌ poichรฉ viene chiamato il 2ยฐ caso.

Dichiarazioni di loop

JSP Ciclo For

Viene utilizzato per ripetere gli elementi per una determinata condizione e ha tre parametri.

  • Il contatore delle variabili viene inizializzato
  • Condizione finchรฉ il ciclo non deve essere eseguito
  • Il contatore deve essere incrementato

Sintassi del ciclo For:

For(inti=0;i<n;i++)
{
           //block of statements
}

In questo esempio, abbiamo un ciclo for che esegue un'iterazione finchรฉ il contatore non รจ inferiore al numero specificato:

<%@ 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>

Spiegazione del codice:

  1. Riga di codice 10: La variabile denominata "num" รจ inizializzata su 5 nei tag di espressione
  2. Riga di codice 11-14: Nei tag EL, "out" รจ la classe di JSP e "println" รจ il metodo out che stampa nel flusso di output e viene avviato il ciclo for che ha tre parametri:
    • La variabile i รจ inizializzata su 0,
    • Viene data la condizione in cui i deve essere inferiore alla variabile locale num,
    • E i viene incrementato ogni volta che il ciclo ripete.

Nel corpo di "forloop", c'รจ una classe JSP che stampa nel flusso di output utilizzando il metodo println dove stiamo stampando la variabile i.

Quando esegui il codice sopra, avrai il seguente output.

Produzione:

JSP Ciclo For

  • Uscita Numbers sono 0 1 2 3 4. In questo esempio, stiamo dando la condizione che finchรฉ il contatore non รจ inferiore a uguale a una variabile, il "ciclo for" deve essere eseguito. Il numero รจ 5 quindi il ciclo inizierร  da 0 e durerร  fino a 4 (5 volte). Da qui l'output.

JSP Ciclo while

Viene utilizzato per ripetere il file elementi in cui ha un parametro della condizione.

Sintassi:

While(i<n)
{
      //Block of statements
}

In questo esempio, abbiamo un ciclo while che verrร  ripetuto finchรฉ il giorno non sarร  maggiore o uguale al contatore:

<%@ 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>

Spiegazione del codice:

  • Riga di codice 10: La variabile denominata i รจ inizializzata su 1 e il giorno รจ 2 nei tag dell'espressione
  • Riga di codice 11-17: Nei tag EL, c'รจ un "ciclo while" che ripeterร  finchรฉ non avremo una condizione impostata come se il giorno fosse maggiore o uguale alla variabile i sarร  vera. (giorno>=i) All'interno di questo c'รจ "se condizione" (giorno รจ uguale a i) e "se condizione" รจ vera, allora stamperร  il flusso di output e uscirร  dal ciclo while altrimenti la variabile i verrร  incrementata e il ciclo itera.

Quando eseguiamo il codice, avremo il seguente output

L'uscita รจ:

JSP Ciclo while

  • L'output di questo codice sarร  โ€œits Monday".

JSP OperaTors

JSP Operators supporta la maggior parte dei suoi operatori aritmetici e logici supportati da Giava all'interno dei tag del linguaggio di espressione (EL). Gli operatori usati di frequente sono menzionati di seguito:

Di seguito gli operatori:

. Accedi a una proprietร  bean o a una voce della mappa
[] Accedi a un array o a un elemento dell'elenco
() Raggruppare una sottoespressione per modificare l'ordine di valutazione
+ Aggiunta
- Sottrazione o negazione di un valore
* Moltiplicazione
/ o div Divisione
% o mod Modulo (resto)
== o eq Test di uguaglianza
!= o ne Test della disuguaglianza
< o lt Prova per meno di
> o g Prova per maggiore di
<= o le Prova per meno o uguale
>= o ge Prova per maggiore o uguale
&& o e Prova per l'AND logico
|| o o Test per l'OR logico
! o no Complemento booleano unario
Vuoto Verifica i valori delle variabili vuoti

In questo esempio,

  • Dichiariamo due variabili num1 e num2 e quindi prendiamo una variabile num3, dove utilizziamo l'operatore JSP + by per sommare num1 e num2 e ottenere num3.
  • Quindi controlliamo una condizione se num3 non รจ uguale a 0 utilizzando gli operatori JSP (!= , >) e
  • Quindi prendiamo un'altra variabile num4 moltiplicando due num1 e num2 otteniamo num4.

Tutti questi numeri dovrebbero essere stampati come nostro output:

<%@ 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>

Spiegazione del codice:

  • Riga di codice 10: La variabile denominata num1 viene inizializzata su 10 e num2 su 50 nei tag di espressione
  • Riga di codice 11: La variabile num3 รจ la somma di num1 e num2 dove utilizziamo l'operatore di addizione
  • Riga di codice 12-16: Nei tag EL abbiamo utilizzato una condizione OR che รจ un operatore logico e operatori aritmetici per verificare se num3 รจ maggiore di 0 nella condizione if. L'OR viene utilizzato quando una qualsiasi condizione รจ vera, in tal caso verrร  inserito il "caso if" in cui stiamo moltiplicando due numeri "num1" e "num2" e ottenendo l'output in "num4" e stamperร  il flusso di output.

Quando esegui il codice sopra, avrai il seguente output.

Produzione:

JSP OperaTors

  • Il primo output รจ il numero 4 รจ 500 (variabile num4 che รจ num1*num2)
  • Il secondo output รจ il Numero 3 รจ 60 (variabile num3 quale num1+num2)

Sintesi

  • JSP Expression Language (EL) semplifica l'accesso all'applicazione per i dati archiviati nei componenti Javabeans.
  • Permette anche di creare espressioni sia aritmetiche che logiche.
  • All'interno dei tag EL possiamo usare numeri interi. Numeri in virgola mobile, stringhe e valori booleani.
  • In JSP possiamo anche utilizzare cicli e dichiarazioni decisionali utilizzando i tag EL

Riassumi questo post con: