답변:
2002 년 6 월 : JSTL 1.0이 EL과 함께 처음 도입되었습니다. ${}
JSTL 태그에서만 작동 하는 것입니다. Javabean get
메소드 를 호출하도록 설계되었습니다 .
2003 년 11 월 : JSP 2.0이 도입되고 EL이 javax.servlet.jsp.el
패키지의 JSTL 1.0에서 JSP 2.0으로 이동 되었으며 J2EE 1.4 표준의 일부로 표준 EL 이되었습니다 . JSTL 1.1은 EL없이 배송되었습니다. 이제 ${}
JSP 템플릿 텍스트의 JSTL 태그 외부에서도 작동합니다.
3 월 : 2004 JSF 1.0에 도입 된 연기 EL 에 javax.faces.el
패키지로 제공된다. #{}
JSF 태그 내에서만 작동 하는 것입니다. 표준 JSP EL과의 차이점 ${}
은 get
할 수있을뿐만 아니라 할 수도 있다는 것 set
입니다. 이것은 관리 빈 자동 생성 및 입력 구성 요소의 값 설정에 필수였습니다. 표준 EL ${}
은 JSF 출력 태그에서도 작동하지만 아직 범위에 존재하지 않고 입력 값을 설정하지 않는 경우 빈을 자동 생성하지 않습니다.
2005 년 5 월 : 2006 년 5 월에 출시 될 새로운 JSP 2.1을 준비하는 동안 지연된 EL #{}
이 JSF에서 추출되어 표준 EL과 결합되었습니다.${}
에 javax.el
패키지로 제공된다. 그 시점에서 JSF 1.2와 함께 도입 된 통합 EL 이되었고 나중에 JSP 2.1 및 Java EE 5 표준의 일부가되었습니다. 는 #{}
이제에 JSP 태그에 사용할 수 get
있지만에, 값 set
값. 는 ${}
이제 JSP도 자동 작성 콩,하지만 관리 할 수 set
값을.
2006 년 11 월 : Facelets가 JSP의 후속 제품으로 도입되었습니다. 속성없이 #{}
대신 JSF 태그 외부의 템플릿 텍스트 를 사용할 수 있습니다 <h:outputText>
. 그것은 또한 치료 ${}
로 #{}
, Facelets의 동일한 행동하라 둘 다 너무.
2009 년 12 월 : EL은 JSP 사양에서 추출되어 JSP와 독립적으로 유지되는 독립형 사양이되었습니다. 첫 번째 버전은 JSP 2.2와 유사한 EL 2.2 (JSR-245)입니다. 새로운 주요 기능은 #{}
구문 내에서 Javabean getter / setter를 호출하는 대신 매개 변수화 된 메소드를 호출하는 것입니다 ( 예 : #{bean.method(argument)}
. 또한 Facelets는 Java EE 6 표준의 일부가되었습니다.
2013 년 6 월 : 독립형 EL 프로세서와 함께 제공되는 EL 3.0이 도입되어 일반 Java SE 애플리케이션에서 사용할 수 있습니다. 다른 주요 새로운 기능은 새로운 문자열 연결 연산자 +=
, 스트림 및 Lambda 표현식을 포함한 컬렉션 객체에 대한 새로운 작업입니다.->
(Java 6/7에서도 가능)을 및 EL 범위로 상수 가져 오기가 있습니다.
BalusC의 답변에 추가 ...
EL은 원래 2001 년 Art Technology Group의 Nathan Abramson에 의해 구상되고 구현되었습니다. 당시 구현은 SPEL (Simplest Possible Expression Language)로 알려져있었습니다. 구현은 나중에 JSTL1.0에 포함되었습니다. Nathan은 JSR-052 Expert Group 의 일부였으며 JSTL 사양 에서 표현 언어의 원동력 으로 인정 받았습니다 .
"JSTL에 도입 된 표현 언어의 원동력이 된 Nathan Abramson의 특별한 언급"