본문 바로가기

JSP

JSP EL(Expression Language) 과 JSTL-코어태그(core)

EL(Expression Language)

- 표현 언어를 이해하고 속성 값들을 편리하게 출력하기 위해 제공된 언어.

- 자바가 가진 데이터를 화면에 출력하는 기능을 가진 언어이다.

- <%= 자바코드 % >, JSP의 표현식은 자바로 되어있다. 되도록 JSP(HTML기반) 페이지에서는 자바구문을 사용하지 말자. => EL으로 대신 표현하자.

- 수치 연산, 관계 연산, 논리 연산자 제공

- 자바 클래스 메서드 호출 기능 제공

-표현 언어만의 기본 객체 제공


**EL 표현방법

1. ${값}

2. #{식} : Deferred Expression이라고 한다

- JSP 2.1버전 부터 새롭게 지원하는 구문으로 JSF(JavaServer Faces)에서 사용되던 표현 언어 구문.

- ${값}은 표현식이 실행되는 시점에 곧바로 값을 계산하고 #{식}은 실제로 값이 실제로 필요한 시점에 값을 계산한다.

- 허용되는 태그의 속성에만 위치할 수 있다.


** (스크립트 언어) <%=abc%>를  (EL) $[abc]로 간단하게 사용할수 있다.


**EL 기본 객체

- pageContext : JSP의 page 기본 객체와 동일하다.

- pageScope : pageContext 기본객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체

- requestScope : request 기본객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체

- sessionScope : session 기본객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체

- applicationScope : application 기본객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체

- param : 요청 파라미터의 <파라미터이름, 값> 매핑을 저장한 Map 객체, 타입은 String

- paramValues : 요청 파라미터의 <파라미터이름, 값 배열> 매핑을 저장한 Map 객체, 타입은 String[]

- header : 요청 정보의 <헤더이름, 값> 매핑을 저장한 Map 객체

- headerValues : 요청 정보의 <헤더이름, 값 배열> 매핑을 저장한 Map 객체

- cookie : <쿠키 이름, Cookie> 매핑을 저장한 Map객체

- initParam : 초기화 파라미터의 <이름, 값> 매핑을 저장한 Map 객체


출처: http://gangzzang.tistory.com/entry/JSP-표현-언어Expression-Language-또는-익스프레션-언어 [갱짱.study]




JSTL(Jsp Standard Tag Library)

- 자바 구문을 사용하지 말고 태그형식으로 구현하는것.

- 표준 액션태그로 처리하기 힘든 부분을 담당.


- <%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%> 태그를 맨위에 선언해준다.

- jstl.jar가 필요하다.

- WepContent -> WEB-INF -> lib 에 jstl.jar를 넣는다.


**<c:set>

- 변수를 선언하는 태그

< c:set var="변수이름" value="값"/>


<c:set var="n2" value="${n2+20}"></c:set>

<div>n2 : ${n2 }</div>


<c:set var="n3" value="${n2}"></c:set>

<div>n3 : ${n3 }</div>


** <c: remove>

- 변수를 제거할때 사용하는 태그

- <c:remove var="변수이름"/>

<c:remove var="n3"></c:remove>


** <c:out>

- 변수 내용을 출력할 떄 사용되는 태그



**JSTL에서 기존의 값을 불러오려면 반드시 EL을 사용한다.

//예시



//제어문

** <c:if test="true|false">



<c:set var="num" value="10"/>

 

 <c:if test="${num>0 }">

  ${num }은 양수입니다.

 </c:if>

 

 <c:if test="${num<0 }">

  ${num }은 음수입니다.

 </c:if>


** <c:choose>


 <!-- switch문 -->

 <c:choose>

  <c:when test="${num>0 }">양수</c:when>

  <c:when test="${num<0 }">음수</c:when>

  <c:otherwise>영</c:otherwise>

 </c:choose>



//반복문

** <c:forEach>


<!-- VB문법 -->

 <c:forEach begin="1" end="5" var="i" step="1">

  <div>${i}. 항목</div>

 </c:forEach>

 

 <!-- for(String name : names) {} -->

 <c:forEach var="name" items="${names}">

  <div>${name}</div>

 </c:forEach>



**<c:forTokens>



'JSP' 카테고리의 다른 글

MVC 디자인 패턴(Model1, Model2)  (0) 2018.11.20
JSP 파일 업로드  (0) 2018.11.16
JSP Session vs Cookie (세션과 쿠키)  (0) 2018.11.16
JSP 표준 액션 태그  (0) 2018.11.14
JSP 내장 객체 및 생명주기(Scope)  (0) 2018.11.14