jstl : 키워드화 시켜 제시.(뷰단에 있는 내용들은 개발자 입장에서가 아닌 디자이너와 퍼블리셔 입장에서 생각해야함.)
jstl을 쓰기 위해선 라이브러리가 필요하다.
1. 톰캣 사이트 들어가기
2. 메뉴의 taglibs 들어가기
3. Servlet 2.4, JavaServer Pages 2.0 다운로드
4. binaries / jakarta-taglibs-standard-1.1.2.zip (933k)다운로드
5.압축풀고 jar 파일 복사
-> 원본은 항상 보관해 놓도록 한다!
- 선언부 <%!%> 클래스 내부에 번역됨
-스크립트릿 <%%> : 서블릿으로 번역될 때 서비스에서 번역, 비지니스 로직을 구현한다.
-익스프레션 <%=%> out.println의 생략형(표현식)
==> ${값}
Expressio languge (표현언어): 값을 표현하기위해서만 나온언어
[EL (Expression Language) 표현언어란?]
1) JSTL(JSP Standard Tag Library)1.0 규약에 소개된 내용으로써 JSP 2.0 규약에 새롭게 추가된 기능.
2) 값을 표현하는데 사용되는 새로운 스크립트 언어로써 JSP의 기본 문법을 보완하는 역할을 한다.
3)표현언어가 제공하는 기능
- JSP 네가지 기본 객체가 제공하는 영역의 속성 사용(page,request,session,application)
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메서드 호출 기능 제공
ㄴ(메서드를 써도 된다고 생각할수 있는데 MVC를 쓰면서 지켜야할 약속은 view(jsp)에서는 자바 메서드를 실행해서는 안된다.기능호출X)
ㄴ(여기서의 메서드 호출 기능은 데이터를 반환받는 getter 호출을 의미함)
-표현 언어만의 기본 객체 제공
[표현언어의 표현 방법]
표현언어는 $와 표현식 그리고 괄호{}를 사용하여 값을 표현한다.
${값}
값 부분에는 표현언어가 정의한 문법에 따라 값을 표현하는 식이 온다.
(표현 언어는 커스텀 태그의 속성이나 비 스크립트 요소 부분에서도 사용 가능)
[El의 기본객체] - 기억할 것
- requestScope : request 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체
- sessionScope: session 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체
- param : 요청 파라미터의 <파라미터 이름, 값> 매핑을 저장한 map 객체, 값의 타입은 String[]으로서, request.getParameterValue(이름)의 결과와 동일하다.
-Cookie : <쿠키 이름, Cookie>매핑을 저장한 Map 객체, request.getCookies()로 구한 Cookie배열로부터 매핑을 생성한다.
[El의 데이터타입]
-자바의 모든 자료형은 출력이 가능하다.(boolean, 정수, 실수, 문자열)- "", '' 둘 다 문자열로 인식한다.-null 은 아무것도 보여주지 않는다. (조건 판단을 하지 않아도된다.)
| El의 수치 연산자 | El의 비교 연산자 | El의 논리 연산자 |
| 덧셈 : + 뺄셈 : - 곱셈 : * 나눗셈 : / 또는 dix 나머지: % 또는 mod |
== 또는 eq != 또는 ne < 또는 lt > 또는 le >= 또는 ge |
&& 또는 and || 또는 or ! 또는 not |
- EL 사용시 주의점
1. null은 빈문자열이 출력된다.
2. +를 하게 되면 문자연결이 아닌 산술연산이 된다. ( 문자가 들어오면 파싱을 함, 파싱이 안될경우 에러남)
3. el은 연산하기 위한 목적으로 나온것이 아니고 표현하기 위해 나옴.
ㄴ / 몫이 아닌 몫과 함께 나머지 값도 출력됨.
***VIEW에서는 비지니스 로직을 구현하지 않기로 함 . 비지니스 로직은 action이나 컨트롤러에서 해야함**
[empty연산자 ]
형식 : empty<값>empty 연산자는 검사할 객체가 텅 빈 객체인지 검사하기 위해 사용됨.1) 값이 null 이면 true2) 값이 빈 문자열("")이면 true3) 값이 길이가 0인 배열이면 true4) 값이 빈 Map이면 true 5) 값이 빈 Collection이면 true( 컬렉션에는 List, Set, Array등이 모두 포함됨)6) 이외의 경우 false 리턴ex) ${empty param.name}
[JSTL(표준 태그 라이브러리)]
-JSTL은 계속적으로 사용이 증가되고 있는 추세다.
- 많이 사용되는 사용자 정의 태그를 모아서 JSTL 이라는 규약이 만들어짐.
- 스크립틀릿, 표현식을 사용하는 것 보다 훨씬 간결한 문법 구조를 지원.
-JSTL은 5가지 태그를 지원.(외울거는 Core)
jstl을 사용하기 위해선 라이브러리가 필요함+ 선언 필요

[Core Tag]
- 변수 지원 / set : JSP에서 사용될 변수를 설정.(컨트롤러에서 넘어온 데이터 저장해서 사용, 변수 선언할 때 사용된다.)
- 흐름제어 / if : 조건에 따라 내부 코드를 수행
- 흐름제어 / choose: 다중 조건을 처리할 때 사용.
- 흐름제어 / forEach : Collection의 각 항목을 처리할 때 사용.
- 흐름제어 / forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용.
-url처리 / url : url을 재작성.
[Core Tag - 변수지원/
<c:set>]


- EL 변수의 값이나 EL변수의 프로퍼티의 값을 지정할 때 사용 된다.
- 자료형은 쓸 필요 없다. 자동적으로 형을 잡음.
- 보관을 하고 출력한다는 목적을 가지고 있다.
-대괄호를 이용해서 특수문자 접근 가능.

자바 스크립트 : 코어, dom , bom
[Core Tag - 흐름태그 /
<c:if> ]

-단일 if문이라고 생각하기
-중첩된 if~else 블록과 같은 효과를 낼 순 없다.
[Core Tag - 흐름태그 /
<c:choose>&<c:when>&<c:otherwise>]
-자바의 switch구문과 if-else 블록을 혼합한 형태로 다수의 조건문을 하나의 블록에서 수행하고자 할 때 사용된다.

[Core Tag - 흐름태그 /
<C:forEach>]
형식: <c:forEach var="변수" items="아이템"> items속성 : map, 배열, Collection등

- break와 continue가 없다. (중간에 멈출 수 없다)
- 증감이 양수로만 된다.
-확장된 for문을 기반으로 만들어짐.
[Core Tag - 흐름태그 /
<C:forTokens>]
형식: <c:forTokens var-"token" items="문자열" delims="구분자">

'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글
| [Spring]AOP, 메이븐 (0) | 2023.02.22 |
|---|---|
| [Spring] 스프링의 주요 기능 및 특징과 DI , AOP (0) | 2023.02.21 |
| [디자인패턴]사원관리프로그램 생성하기 (0) | 2023.02.17 |
| [디자인패턴]redirect, forward, model2 , MVC패턴, 커맨드 패턴 (0) | 2023.02.16 |
| [jsp]단답형 게시판에서 답변형 게시판으로 만들기 (0) | 2023.01.25 |