Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 자바 람다식
- pseudo-code
- SQL
- 슈더코드
- Java
- 2차원배열 구간합
- InterruptException
- Bean LifecCycle
- 백준 11659번
- 백준 11660번
- 멀티스레드
- json
- @AllArgsConstructor
- 백준
- 백준 1235번
- 구간합
- 생성자
- 구간합구하기
- function test
- interrupted()
- cas알고리즘
- select
- @NoArgsConstructor
- this와 this() 차이
- 상속과 참조
- map()
- 합배열
- jquery
- ajax
- this
Archives
- Today
- Total
평범한 연구소
[JSP|Servlet] 표현언어(EL) 본문
표현 언어 (Expression Language, EL)
- 스크립트 요소의 사용 없이 JSP 페이지에 값을 표현할 수 있는 태그 기반의 스크립트 언어
- JSP의 스크립트 요소(릿, 표현식, 선언부) 를 제외한 나머지 부분에서 사용될 수 있다.
- JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용
- page, request, session, application에 바인딩된 속성이나 그 속성의 property 값 출력
- collection 객체에 대한 접근 방법 제공
- 수치 연산자, 관계 연산자, 논리 연산자 등의 EL 연산자 제공
- 자바 클래스의 메소드 호출 기능 제공
- EL 내장 객체 제공
EL의 형식
<!-- 표현 형식 -->
$ { expression }
EL 연산 예제
- 사칙 연산
- 문자열의 결합은 '+' 연산자로 불가능. '+=' 연산자 이용.
<p> ${ 3+5 } </p> <!-- 8 : Long 형 -->
<p> ${ "3"+5 } </p> <!-- 8 : Long 형 -->
<p> ${ "3"+"5" } </p> <!-- 8 : Long 형 -->
<p> ${ 10/5 } </p> <!-- 2.0 : Double -->
<p> ${ 13/5 } </p> <!-- 2.6 -->
<p> ${ 13 mod 5 } </p> <!-- 3 -->
<p> ${ 13 % 5 } </p> <!-- 3 -->
<p> EL에서 "A" + "B" 의 결과는 에러. +로 문자열 결합은 불가능 </p>
- 비교/논리 연산
- empty는 값이 null, 빈문자열, 길이가 0인 배열 등 → true
<p> 3 == 4 : ${ 3 == 4 }, 3 eq 4 : ${3 eq 4 } </p>
<p> 3 != 4 : ${ 3 != 4 } </p>
<p> 3 < 4 : ${ 3 < 4 }, 3 lt 4 : ${3 lt 4 } </p>
<p> 3 > 4 : ${ 3 > 4 }, 3 gt 4 : ${3 gt 4 } </p>
<p> 3 <= 4 : ${ 3 <= 4 }, 3 le 4 : ${3 le 4 } </p>
<p> 3 >= 4 : ${ 3 >= 4 }, 3 ge 4 : ${3 ge 4 } </p>
<p> empty name : ${empty name} </p> <!-- true -->
<p> ${ 10%2 == 0 ? "짝수":"홀수" }
<p> 논리 연산자 : not, and, or, !, &&, || </p>
- 기타 연산자
<p> 문자열 결합 : +=, ${"서울" += "경기"} </p>
<p> ; 연산자 : a;b 에서 a는 출력하지 않고 b만 출력</p>
<p> ${1+2; 2+5} </p> <!-- 7 -->
- 할당 연산자
- 할당 자체도 출력한다.
<p> ${a=10} ${a} </p> <!-- 결과 10 10 -->
<p> ${a=10; a} </p> <!-- 10 -->
EL 내장 객체
EL 내장객체 | 타입 | 설명 |
pageContext | pageContext | 현재 페이지를 위한 javax.servlet.PageContext. JSP 페이지의 환경 정보. |
Header | Map | HTTP 요청 헤더를 받아오는데 사용 |
sessionScope | Map | 지정된 속성 이름을 session 영역에 설정된 값과 매핑 |
param | Map | request 파라미터 값을 얻어오는데 사용하며, 단일 값을 반환. (request.getParameter()) |
EL 내장 객체 사용 예제
<p> pageContext : 현재 페이지의 설정 정보 </p>
<p> Context Path : <%= request.getContextPath() %> </p> <!-- /study3 -->
<p> Context Path : ${pageContext.request.contextPath } </p> <!-- /study3 -->
<hr>
<p> header : 요청 헤더 정보 </p>
<p> User-Agent : ${header["user-agent"]} </p>
<!-- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 -->
<hr>
<p> 기타 내장 객체 </p>
<p> EL 에서 session 객체 : sessionScope </p>
- EL의 param 내장객체를 사용
- request.setAttribute("vo", dto);
- ${ vo.name }
- ${ param.city }
<!-- ex03.jsp -->
<%
request.setCharacterEncoding("utf-8");
User dto = new User("홍길동", 20, "010-1111-1111", null);
request.setAttribute("vo", dto);
%>
...
<!-- ex03_ok.jsp -->
<h3>EL을 사용하여 출력</h3>
<p>
${vo.name}, ${vo.age}, ${vo.tel}, ${vo.subject}
<!-- 필드 값이 null인 경우 아무것도 출력되지 않는다. -->
</p>
<p>
${param.city}
<!-- 파라미터는 param 이라는 내장 객체를 이용한다. -->
<!-- request.getParameter("city") 와 유사 -->
</p>
<h3>EL을 사용하지 않은 경우</h3>
<%
User vv = (User)request.getAttribute("vo");
String city = request.getParameter("city");
%>
<p>
<%= vv.getName() %>, <%=vv.getAge() %>, <%=vv.getTel() %>, <%=vv.getSubject() %>
<!-- 필드 값이 null인 경우 null로 출력 된다. -->
</p>
<p> <%=city%> </p>
'Pront > Javascript' 카테고리의 다른 글
[Javascript] 간단한 유효성 검사 (0) | 2022.10.05 |
---|---|
[JSP|Servlet] JSTL | Core, Fomatting, JSTL Functions (0) | 2022.10.04 |
[JSP|Servlet] JDBC (0) | 2022.10.02 |
[JSP|Servlet] 에러 페이지 (0) | 2022.10.02 |
[JSP|Servlet] 액션 태그(action tag)와 자바빈즈(Java Bean) (0) | 2022.10.02 |