- [JSP]-표현언어:람다식, 스트림API 목차
람다식
* Lambda Expression
* 함수처럼 파라미터를 가진 코드 블록으로 익명 함수를 지칭하는 용어이다.
* 일종의 함수처럼 사용이 가능하다. (호출, 재귀)
1) 람다식 형식
( 파라미터1, 파라미터2) -> EL식
* 예1) a가 b보다 큰 경우 true를 리턴하고, 크지 않다면 false를 리턴하는 람다식
( a, b) -> a>b ? true : false
* 예2) 람다식을 EL에서 사용
${ greaterEx = (a, b)-> a>b ? true : false ; " }
* 람다식을 greaterEx 변수에 할당하는 코드이다. 책의 예제는 결과를 출력하지 않기 위해 세미콜론 연산자를 사용했다.
* 람다식은 일종의 함수로, 위 처럼 할당한 변수를 함수처럼 호출할 수 있다. 또한 병수에 할당하지 않고 바로 사용도 가능하다.
스트림 API
* EL3.0버전에서 반복문을 제공하지 않기때문에 컬렉션 객체를 위한 스트림 API가 추가되었다.
* 예) 합 구하기
<c:set var="data" value="<%= java.util.Arrays.asList(1,2,3,4) %>" />
<c:set var="sum" value=" ${data.stream().sum()}" />
* 예) 세미콜론 연산자와 할당 연산자를 이용해 EL만으로 계산 결과를 sum 변수에 할당
${ data = [1, 2, 3, 4]; sum = data.stream().sum() ; "}
1) 기본
* 기본 형태
* 스트림 생성 뒤 스트림은 다음 연산으로 원소를 차례대로 제공한다.
* 스트림 객체의 중간 연산 메소드는 변환 과정을 거친 뒤 새로운 스트림 객체를 생성한다. (생략 가능)
* 최종 연산은 스트림에 있는 데이터를 읽어와 최종 결과를 생성한다.
2) 스트림 생성
* 스트림 메소드를 이용한 스트림 객체를 생성 : 객체.stream()
* 스트림 생성 뒤 중간 연산과 최종 연산을 거쳐 새로운 결과를 생성한다.
* EL은 Map타입의 stream()을 제공하지 않는다. 아래는 EL에서의 stream()사용 방법이다.
<p><%
java.util.Map<String, String> map = new java.util.HashMap<>();
map.put("color1","빨간색");
map.put("color2","파란색");
request.setAttribute("map", map);
%>
${map.entrySet().stream().map(entry-> entry.value).toList()}
</p>
'Web(국비) > JSP' 카테고리의 다른 글
[JSP]-서블릿(servlet)이란? (0) | 2019.11.11 |
---|---|
[JSP]JSTL(표준 태그 라이브러리) (0) | 2019.11.07 |
[JSP]표현 언어(Expression Language)란? (0) | 2019.11.06 |
[JSP]-session이란?(세션과 쿠키의 차이점) (0) | 2019.11.04 |
[JSP]쿠키(Cookie)란? (0) | 2019.11.03 |