프로그래밍/Servlet&JPS

10 Servlet & JSP : EL 표현식

pupu91 2022. 8. 25. 13:53
반응형

EL 표현식

- ${ 범위scop.키캆 } 

- scop 생략가능

- scop를 명시 하지 않았을 경우 좁은 범위부터 탐색

- 탐색 순서 : pageScope => requestScope => sessionScop => applicationScope

 

 

EL의 내장 객체

 

1. 전달 된 서블릿 request 객체에서 저장 된 정보를 jsp에 출력하기

 

  • 스크립틀릿 태그와 expression 태그
<%
	String name = (String) request.getAttribute("name");
	int age = (Integer) request.getAttribute("age");
	String phone = (String) request.getAttribute("phone");
%>
	
	name : <%= name %>
	age : <%= age %>
	phone : <%= phone %>

 

 

 

  • EL  표현식으로 출력
EL 표현식
name : ${ requestScope.name}
age : ${ requestScope.age }
phone : ${requestScope.phone}

스코프 범위 생략 가능함
name : ${ name}
age : ${ age }
phone : ${phone}

 

 

 

 

2. 서블릿에  items 이름으로 저장 된 리스트를 jsp에 출력하기

  • 스크립틀릿 태그와 expression 태그
<%
	ArrayList items = (ArrayList)request.getAttribute("items");
%>
	
<% for(int i = 0; i <items.size(); i++) { %>
	<%= i %> : <%= items.get(i) %>
	
<% } %>

 

 

 

 

 

  • EL 표현식으로 출력하기
0 : ${ requestScope.items[0] }
2 : ${ requestScope.items[2] }
1 : ${ requestScope.items[1] }

0 : ${ items[0] }
2 : ${ items[2] }
1 : ${ items[1] }

 

 

 

반응형

 

3. 전달 된 request 객체에 저장 된 Member 객체 필드 값 출력하기

(서블릿에 MemberDTO 선언, 자바로 MemberDTO 만듦)

  • 스크립틀릿 태그와 expression 태그
<%
	MemberDTO member = (MemberDTO)request.getAttribute("member"); 	
%>

이름 : <%= member.getName() %>
나이 : <%= member.getAge() %>
전화번호 : <%= member.getPhone() %>
이메일 : <%= member.getEmail() %>

 

 

 

 

  • EL 표현식으로 작성
<%
	MemberDTO member = (MemberDTO)request.getAttribute("member"); 
%>

EL
이름 : ${ requestScope.member.name}
나이 : ${ requestScope.member.age}
전화번호 : ${ requestScope.member.phone}
이메일 : ${ requestScope.member.email}

스코프 생략
이름 : ${ member.name}
나이 : ${ member.age}
전화번호 : ${ member.phone}
이메일 : ${ member.email}

 

 

4. Parameter 값 받아서 출력하기

 

  • 스크립틀릿 태그와 expression 태그
html에 작성
<h3 align="center"><a href="views/el/testEL3.jsp?name=galaxy&price=95&no=5&no=6&option=삼성">
parameter로 값 전달 테스트 </a></h3>

값 꺼내오기
<%
	String name = request.getParameter("name");
	int price = Integer.parseInt(request.getParameter("price"));
	String[] no = request.getParameterValues("no");
	String option = request.getParameter("option");
%>

화면에 출력하기
상품명 : <%= name %>
가격 : <%= price %>
제품번호 : <%= no[0] %>, <%= no[1] %>
옵션 : <%= option %>

 

 

 

 

  • EL 표현식 사용
html에 작성
<h3 align="center"><a href="views/el/testEL3.jsp?name=galaxy&price=95&no=5&no=6&option=삼성">
parameter로 값 전달 테스트 </a></h3>
no=5&no=6는 배열 형식으로 저장

EL 표현식 사용(param.키값)
상품 : ${param.name}
가격 : ${param.price}
제품번호 : ${paramValues.no[0] }, ${paramValues.no[1]} 
=> 배열은 paramValues.키값[idex]
옵션 : ${ (empty param.option) ? "옵션 없음" : param.option}
=> EL 안에서 연산 가능 /  empty: 객체 값이 비어있을 경우 (true)

 

반응형