표현언어(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 |