JSP 표현식 언어(EL) 튜토리얼

표현 언어(EL)란 무엇입니까?

EL(Expression Language)은 다음에 저장된 데이터의 접근성을 단순화하는 메커니즘입니다. 자바 Bean 컴포넌트 및 요청, 세션, 애플리케이션 등과 같은 기타 객체. JSP에는 표현식을 수행하기 위해 산술 및 논리 연산자와 같이 EL에서 사용되는 많은 연산자가 있습니다. JSP 2.0에서 도입되었습니다.

표현 언어(EL)의 JSP 구문

EL의 구문 :$(표현식)

  • JSP에서는 중괄호 안에 있는 모든 것이 런타임에 평가되어 출력 스트림으로 전송됩니다.
  • 표현식은 유효한 EL 표현식이며 정적 텍스트와 혼합할 수 있고 다른 표현식과 결합하여 더 큰 표현식을 형성할 수 있습니다.

JSP에서 표현식이 어떻게 작동하는지에 대한 더 나은 아이디어를 얻으려면 아래 예제를 참조하십시오.

이 예에서는 EL을 연산자로 사용하여 두 숫자(1+2)를 더하고 각각 출력을 얻는 방법을 살펴보겠습니다.

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

코드 설명:

  • 코드 라인 11: EL(Expression Language)은 1+2라는 두 숫자를 추가하는 위치에 설정되어 있으므로 출력은 3이 됩니다.

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.wing 산출.

산출:

JSP 표현 언어

  • 표현식은 3입니다(숫자 1+2가 추가되어 출력으로 사용됨).

흐름 제어 문:

JSP는 애플리케이션에 내장될 수 있는 Java의 강력한 기능을 제공합니다. 우리는 Java의 모든 API와 빌딩 블록을 다음과 같이 사용할 수 있습니다. JSP 프로그래밍 의사 결정 및 루프 문을 포함하는 제어 흐름 문을 포함합니다.

아래에 설명된 두 가지 유형의 흐름 제어 문이 있습니다.

  1. 의사결정 진술
  2. 루프 문

의사결정 진술:

JSP의 의사결정문은 설정된 조건이 참인지 거짓인지에 따라 결정됩니다. 명령문은 그에 따라 작동합니다.

아래에는 두 가지 유형의 의사결정 진술이 설명되어 있습니다.

  1. 다른 경우라면
  2. 스위치

JSP If-else

“If else” 문은 모든 제어 흐름 문의 기본이며 특정 테스트가 true로 평가되는 경우에만 코드의 특정 섹션을 실행하도록 프로그램에 지시합니다.

이 조건은 둘 이상의 조건이 참인지 거짓인지 테스트하는 데 사용됩니다.

  • 첫 번째 조건이 true이면 "if 블록"이 실행되고
  • 거짓이면 "else 블록"이 실행됩니다.

if – else 문의 구문:

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

이 예에서,

변수를 가져와 변수가 초기화된 값과 일치하는지 값을 확인하여 "if else" 조건을 테스트해 보겠습니다.

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

코드 설명:

  • 코드 라인 10: 표현식 태그에서 월이라는 변수가 5로 초기화됩니다.
  • 코드 라인 11: EL 태그에는 월이 2인 경우를 나타내는 "if 조건"이 있습니다(여기서 조건은 참 또는 거짓으로 테스트됩니다).
  • 코드 라인 12: 변수 월이 2라는 조건이 true이면 출력 스트림으로 인쇄됩니다.
  • 코드 라인 13-15: 위의 if 조건이 실패하면 명령문이 출력 스트림으로 인쇄되고 조건이 닫히는 다른 모든 경우에 대해 else 부분으로 이동합니다.

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.wing 산출.

출력:

JSP If-else

  • 우리가 가지고 있는 달은 #5(2월)와 같지 않은 5이기 때문입니다. 따라서 "XNUMX월 이외의 모든 달"이 출력됩니다(월은 XNUMX로 언급되므로 그렇지 않으면 실행됨).

JSP 스위치

스위치 문의 본문을 "스위치 블록"이라고 합니다.

  • 스위치 케이스는 가능한 실행 경로의 수를 확인하는 데 사용됩니다.
  • 스위치는 모든 데이터 유형에 사용할 수 있습니다.
  • 스위치 문에는 둘 이상의 사례와 하나의 기본 사례가 포함되어 있습니다.
  • 표현식을 평가한 다음 다음과 같은 모든 명령문을 실행합니다.wing 어울리는 케이스

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;
}
  • 스위치 블록은 전달되어야 하는 연산자인 하나의 매개변수로 시작하고
  • 그런 다음 조건을 제공하는 다양한 경우가 있으며 해당 사례가 실행되는 연산자와 일치하는 경우가 있습니다.

아래 예에서는

우리는 변수 주를 정의했고, 이는 둘 중 참인 경우와 일치합니다. 이 경우 주는 2이므로 2입니다.nd 대소문자가 일치하고 출력은 화요일입니다.

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

코드 설명:

  • 코드 라인 10: week라는 변수는 표현식 태그에서 2로 초기화됩니다.
  • 코드 라인 11: EL 태그에서는 주가 매개변수로 전달되는 스위치 케이스가 시작됩니다.
  • 코드 라인 12 – 29: 모든 사례는 사례 0부터 사례 5까지 언급되었으며, 주 매개변수의 값이 사례와 일치하고 그에 따라 출력이 인쇄됩니다. 이 경우 값은 2이므로 이 경우 사례 2가 실행됩니다. 여기서 "out"은 생성된 응답에 대한 출력 스트림을 작성하는 JSP 클래스이고 "println"은 해당 클래스의 메소드입니다.
  • 코드 라인 30-32: 위의 모든 사례가 실패하면 기본 부분으로 이동하고 실행됩니다. 여기서 명령문은 출력 스트림으로 인쇄되고 조건은 닫힙니다.

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.wing 산출.

출력:

JSP 스위치

  • 이 경우 출력은 두 번째 사례가 호출되므로 화요일입니다.

루프 문

JSP For 루프

특정 조건에 대해 요소를 반복하는 데 사용되며 세 가지 매개변수가 있습니다.

  • 변수 카운터가 초기화됩니다.
  • 루프가 실행될 때까지의 조건
  • 카운터를 증가시켜야 합니다.

For 루프 구문:

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

이 예에서는

counter가 주어진 숫자보다 작을 때까지 반복하는 for 루프가 있습니다.

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

코드에 대한 설명:

  1. 코드 라인 10: 표현식 태그에서 "num"이라는 변수는 5로 초기화됩니다.
  2. 코드 라인 11-14: EL 태그에서 "out"은 JSP의 클래스이고 "println"은 출력 스트림에 인쇄하는 out 메소드이며 세 개의 매개변수가 있는 for 루프가 시작됩니다.
    • 변수 i는 0으로 초기화되고,
    • i가 지역 변수 num보다 작은 조건이 주어집니다.
    • 그리고 i는 타임 루프가 반복될 때마다 증가됩니다.

"forloop"의 본문에는 변수 i를 인쇄하는 println 메소드를 사용하여 출력 스트림에 인쇄하는 JSP 클래스가 있습니다.

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.wing 산출.

출력:

JSP For 루프

  • 출력 번호는 0 1 2 3 4입니다. 이 예에서는 카운터가 변수보다 작을 때까지 "for 루프"가 실행되어야 한다는 조건을 제공합니다. 숫자는 5이므로 루프는 0부터 시작하여 4(5회)까지 실행됩니다. 따라서 출력.

JSP While 루프

을 반복하는 데 사용됩니다. 요소 여기서 그것은 조건의 하나의 매개변수를 갖는다.

구문 :

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

이 예에서,

day가 카운터와 같을 때까지 반복하는 while 루프가 있습니다.

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

코드 설명:

  • 코드 라인 10: 표현식 태그에서 i라는 변수는 1로 초기화되고 day는 2입니다.
  • 코드 라인 11-17: EL 태그에는 날짜가 i 변수보다 크거나 같은 조건이 설정될 때까지 반복되는 "while 루프"가 있습니다. (day>=i) "if 조건"(날짜가 i와 같음)이 있고 "if 조건"이 true이면 출력 스트림을 인쇄하고 while 루프를 종료합니다. 그렇지 않으면 i 변수가 증가하고 루프가 반복됩니다.

코드를 실행하면 다음과 같은 결과가 나타납니다.wing 출력

출력은 다음과 같습니다.

JSP While 루프

  • 이 코드의 출력은 “its Monday".

JSP 연산자

JSP 연산자는 EL(표현식 언어) 태그 내에서 Java가 지원하는 대부분의 산술 및 논리 연산자를 지원합니다.

자주 사용되는 연산자는 다음과 같습니다.

FOLLOwing 운영자는 다음과 같습니다.

. Bean 속성 또는 맵 항목에 액세스
[] 배열 또는 목록 요소에 액세스
() 평가 순서를 변경하려면 하위 표현식을 그룹화하세요.
+ 추가
- 값의 빼기 또는 부정
* 곱셈
/ 또는 div 분할
% 또는 모드 모듈로(나머지)
== 또는 eq 동등성 테스트
!= 또는 ne 불평등 테스트
< 또는 lt 미만으로 테스트
> 또는 gt 보다 큰지 테스트
<= 또는 르 작거나 같음 테스트
>= 또는 ge 크거나 같음 테스트
&& 또는 및 논리 AND 테스트
|| 또는 또는 논리적 OR 테스트
! 아니면 안 단항 부울 보수
빈 변수 값 테스트

이 예에서,

  • 우리는 두 개의 변수 num1과 num2를 선언한 다음 변수 num3을 사용합니다. 여기서 JSP 연산자 + by를 사용하여 num1과 num2를 더하고 num3을 얻습니다.
  • 그런 다음 JSP 연산자(!=, >)를 사용하여 num3이 0이 아닌지 조건을 확인하고
  • 그런 다음 두 개의 num4과 num1를 곱하여 다른 변수 num2를 사용하여 num4를 얻습니다.

다음의 모든 숫자는 출력으로 인쇄되어야 합니다.

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

코드 설명:

  • 코드 라인 10: 표현식 태그에서 num1이라는 변수는 10으로, num2는 50으로 초기화됩니다.
  • 코드 라인 11: 변수 num3은 덧셈 연산자를 사용하는 num1과 num2의 합입니다.
  • 코드 라인 12-16: EL 태그에서는 if 조건에서 num3이 0보다 큰지 확인하기 위해 논리 연산자와 산술 연산자인 OR 조건을 사용했습니다. OR은 하나의 조건이 참일 때 사용됩니다. 이 경우 두 숫자 "num1"과 "num2"를 곱하고 "num4"에 출력을 가져오는 "if 케이스"를 입력하고 출력 스트림을 인쇄합니다.

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.wing 산출.

출력:

JSP 연산자

  • 첫 번째 출력은 숫자 4는 500입니다(변수 num4는 num1*num2임).
  • 두 번째 출력은 숫자 3이 60(num3+num1인 변수 num2)입니다.

요약

  • JSP EL(Expression Language)을 사용하면 javabeans 구성 요소에 저장된 데이터에 대한 애플리케이션에 쉽게 액세스할 수 있습니다.
  • 또한 산술적이고 논리적인 표현식을 만들 수도 있습니다.
  • EL 태그 내에서 정수를 사용할 수 있습니다. 부동 소수점 숫자, 문자열 및 부울 값.
  • JSP에서는 EL 태그를 사용하여 루프 및 의사 결정 문을 사용할 수도 있습니다.