자카르타 표현 언어

Jakarta Expression Language

자카르타 표현 언어(EL; 이전의 표현 언어통합 표현 언어)는 주로 자카르타 EE 웹 애플리케이션에서 웹 페이지에 표현을 내장하고 평가하는 데 사용되는 특수 목적 프로그래밍 언어다.Java EE 웹 계층 기술의 사양 작성자와 전문가 그룹은 JSP 2.1 규격(JSR-245)에 처음 포함되었고, 나중에 자바 EE 7의 일부인 JSR-341에 스스로 지정된 통합 표현 언어를 연구했다.

역사

JSTL로 출발함

표현 언어는 JavaServer Pages Standard Tag Library(JSTL)의 일부로 시작되었으며, 원래 SPEL(Simple Possible Expression Language)이라고 불린 다음, 그냥 표현 언어(EL)라고 불렸다.JSP를 통해 자바 컴포넌트(JavaBeans)에 접근할 수 있는 스크립팅 언어였다.JSP 2.0 이후 JSP 태그 내부에 사용되어 JSP로부터 Java 코드를 분리하고, Java 컴포넌트(Java 코드보다)에 대한 접근이 용이해졌다.

JSP 2.0

수년 동안 표현언어는 더 진보된 기능성을 포함하도록 진화했고 JSP 2.0 규격에 포함되었다.핵심 자바 언어에 대한 지식이 거의 없거나 거의 없는 웹 콘텐츠 설계자들에게 스크립팅은 더 쉬워졌다.이 스크립팅 언어는 JSP를 진정한 의미의 스크립팅 언어로 만들었다.EL 이전에 JSP는 Java 코드가 명시적으로 작성된 스크립트, 표현식 등과 같은 일부 특수 태그로 구성되었다.EL을 통해 웹 콘텐츠 설계자는 핵심 자바 메서드에 적절한 전화를 거는 방법만 알면 된다.

EL은 구문론적으로나 의미론적으로 모두 자바스크립트 표현식과 유사했다.

  • 타이프 캐스팅이 없다.
  • 형식 변환은 대개 암묵적으로 이루어진다.
  • 큰따옴표와 작은따옴표는 같다.
  • object.property와 같은 뜻을 가지고 있다object['property']

또한 EL은 프로그래머가 가치에 실제로 접근하는 방법의 특수성을 알 필요가 없도록 했다.object.property의의를 가질 수 있다.object어느 쪽이든object.get("property")또는object.getProperty("property")또는object.getProperty()

EL 2.1

JSP 2.0 개발 중에 JavaServer Faces 기술이 출시되어 표현 언어도 필요했지만, JSP 2.0 규격에 정의된 표현 언어는 JSF 기술로 개발의 모든 필요를 충족시키지 못했다.가장 분명한 제한은 그것의 표현식이 즉시 평가되고, JSF 구성요소는 서버측 객체에서 메서드를 호출할 수 없다는 것이었다.다음과 같은 새로운 특징으로 더욱 강력한 언어가 만들어졌다.

  • 즉시 평가되지 않는 지연 식
  • 데이터를 가져올 뿐만 아니라 설정할 수 있는 식
  • 메서드를 호출할 수 있는 메서드 식

그 새로운 표현 언어는 JSF의 목적에 잘 들어맞았다.그러나 개발자들은 충돌로 인해 JSP EL과 JSF EL을 통합할 때 문제가 있었다.이러한 비호환성 때문에 이러한 표현 언어들을 통일하기 위한 통일 표현 언어 구상이 시작되었다.JSP 2.1을 기준으로 JSP 2.0과 JSF 1.1의 표현 언어가 단일 통합 표현 언어(EL 2.1)로 통합되었다.

EL 3.0

표현 언어 버전 3.0(통합은 더 이상 필요하지 않다고 간주됨)은 JSR-341의 JSP 및 JSF 규격과 무관하게 JSR에서 개발되었다.일부 새로운 기능이 추가되었으며, 특히 Java 8 스트림과 람다 식의 EL 동등성이 가장 두드러졌다.[1]

EL 4.0

버전 4.0은 2020-10-07년에 출시되었다.[2]API는 자바 EE에서 자카르타 EE로의 전환의 일환으로 자바.el 패키지에서 자카르타.el 패키지로 이동했다.

특징들

통일 EL은 JSP와 JSF 표현 언어의 조합이다.통합 EL은 JSP EL에서 이미 사용할 수 있는 기능 외에도 다음과 같은 특징을 가지고 있다.

  • 이연평가
  • 메서드를 호출할 수 있는 값과 식을 설정할 수 있는 식 지원
  • 식을 해결하기 위한 플러그형 API

이는 JSTL "c:out" 태그 내에서 Unified EL이 사용되는 간단한 예를 보여준다.

<c:out value="${myBean.myField}" />

매개 변수를 사용하여 메서드를 호출하는 식:

${myBean.addNewOrder('OrderName')}

구현

  • JEXL(Java Expression Language)은 Java로 작성된 응용프로그램과 프레임워크에서 동적 및 스크립팅 기능의 구현을 용이하게 하기 위한 라이브러리다.최신 버전: 3.2.1, 2021년 6월 25일.
  • JUEL은 JSP 2.1 표준(JSR-245)의 일부로 명시된 통일 표현 언어(EL)의 오픈 소스 구현이다.안정적이고 기능이 완비된 것으로 간주되며 Apache License 2.0에 따라 라이센스가 부여된다. JUEL은 비 JSP 애플리케이션에도 적합하다.2014년 2월 6일 최신 버전 2.2.7.
  • Apache Commons EL은 Apache에서 온 JSP 2.0 EL 통역이다.최신 버전 1.0, 2003년 6월 20일.소스 및 이진 다운로드 링크가 끊어짐.

참고 항목

  • OGNL – WebWork(및 Struts2)에서 사용하는 오픈 소스 EL.
  • MVEL – 많은 Java 기반 프로젝트에 사용되는 오픈 소스 EL.
  • SpELSpring Framework의 일부인 오픈 소스 EL.주로 스프링 포트폴리오 프로젝트에서 사용되지만, 기술에 구애받지 않기 때문에 다른 프로젝트에서도 사용할 수 있다.
  • Ant-Flaka - EL의 도움을 받아 Ant 빌드 스크립트를 단순화하려는 목적
  • CEL – Google에서 개발한 오픈 소스 EL.

참조

  1. ^ "Archived copy". Archived from the original on 2013-09-27. Retrieved 2013-09-24.{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크)
  2. ^ "Jakarta Expression Language 4.0.0". Retrieved 2021-01-05.

외부 링크