본문 바로가기
JSP

JSP의 표현언어 EL태그

by chief_sac 2021. 5. 29.
반응형

 

표현언어(EL,Expression Language)

EL = 속성의 언어

view Layer에서 사용

데이터를 표현(출력 ) 할 목적으로 정의된 스크립트 언어(사용하는방법만)

스코프안에

속성

을 쉽게 출력하기위한 언어(속성으로 구현되는 데이터)

 

표현 언어의 기능

  • JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용
  • 속성으로 공유되고있는 집합 객체에 대한 접근 방법 제공

${member.getTest() },${member.test }

  • 수치 연산, 관계 연산, 논리 연산자 제공
  • 속성으로 공유되고있는 자바 클래스 메서드 호출 기능 제공
  • 표현 언어만의 기본 객체(11개) 제공(request, response사용불가능 대신 pageContext만 지원)사실상 PageContext로 기본문법 다빼내면됨

 

연산자 지원

(연산자가 우선)

산술연산자 : +-*/% - ${2/3}(0.6666),${"2"+"3"}(5),${"2"+3 }(5),${"a"+3 }(x) - EL에서는 +는 무조건 산술연산(문자열안됨)) - 정수연산을 하지않고 실수연산을함) 논리연산자(키워드를 많이씀) :&&(and) , ||(or) , !(not), ^(xor) - ${true and true} *(true), ${true and "true"} (true), ${false or 3 }(에러), \${false or 3 }(이 전체가 문자열로나옴) 비교연산자(키워드를 많이씀) : >(gt), <(lt), >=(ge) ,<=(le), ==(eq) ,≠(ne) ${not(4 le 3) } (true) ${4 gt 3 }(true) 삼항연산자:(조건식)? (참):(거짓) 단항연산자 : empty ${ empty test} 1)속성의 존재 여부 2) null여부 3) type check String : length > 0 array : length > 0 collection : size > 0

할당연산자와 다른 단항연산자를 지원하지않는이유는 EL은 출력이 목적이기때문대신 3.0이후버전은 사용가능

 

자바 객체에 대한 접근기능

:일반적인 기능이아니라 속성인기능 적용 메소드 호출안하고 자바빈 규약을 적용해서 데이터에 접근한다

<%
	 	MemberVO member = new MemberVO("a001","java");
	    request.setAttribute("member", member);
	 %>
	  ${member.mem_id }
	  ${member.getTest() }
	  ,${member.test }
//a001
	  테스트
	  ,테스트

 

집합객체에 대한 접근 기능 지원(연상배열구조)

연상배열 구조 :$test["testVal"]

<%
	 	String[] array = new String[]{"value1", "value2"};
	 	session.setAttribute("array", array);
	 	List<?> list = Arrays.asList("value1", "value2");
	 	application.setAttribute("sampleList",list);
	 %>
	 ${array[1] }, <%-- <%=array[2] %> --%> ${array[2] }
	 ${sampleList.get(0) }, ${sampleList[0] },${sampleList[3] }

//value2,  
//	 ${sampleList.get(0) } , value1,

 

EL 의 기본객체 지원

:특정스코프에 있는 데이터를 찾기위한 객체

 

  • scope : pageScope, requestScope , sessionScope, applicationScopeex) application.setAttribute("sampleList",list); request.setAttribute("sampleList",list2) 작은 객체에 먼저접근하는데 applicationScope.sampleList[0] 이렇게 호출하면됨

 

  • 파라미터(map출력 참고) param (el객체(Map = String, String) paramValues el객체(Map = String, String[])

 

  • header(map출력 참고) header(el객체(Map = String, String) headerValues el객체(Map = String, String[])
  • cookie cookie(el객체(Map = String, Cookie)

 

  • context parameter initParam(el객체(Map = String, String)

 

  • pageContext

JSTL 사용법

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:(메소드)>

var : 변수(내부는 속성에 들어감

varStatus : 상태정보

를 담고있음(변수가아님)

 

 

map출력

 

 

반응형

'JSP' 카테고리의 다른 글

표준태그라이브러리(JSTL)  (0) 2021.07.06
POS 무료 템플릿 (자체 제작)  (0) 2021.07.02
그림으로 설명하는 MVC패턴 5 layer architecture  (0) 2021.06.30
JSP 스코프에 대하여  (0) 2021.06.29
JSP에서 프로토콜이란  (0) 2021.04.17