[[ JSTL ]] - JSP Standard Tag Library
: 사용자정의 태그 라이브러리
- EL 까지는 JSP 가 기본으로 제공해주지만,
1. 변수 선언
2. 조건문
3. 반복문
특히나 이 기능들이 제대로 제공되지 않는 단점이 있다.
이런 기능들을 태그로 만들어, 편하게 사용하라고 라이브러리로 만들어 둔게 JSTL 이다.
- 라이브러리 설치 ( dependency )
- 지시자 설정 필수
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
( 페이지 지시자 밑에 설정 )
- uri 지정 필수 : JSTL 여러 종류가 있는데, 그중 core 를 사용하겠다.
- preifx : JSTL 사용할때, 접두사로 c 를 사용하겠다.
( core의 c 를 기본으로 사용한다. 코드 재활용성을 생각해 유저들이 c 로 맞추어 사용한다. )
------------------------------------------------------------------------------------
1. 변수선언 set
<c:set var="id" value="backcoder"/>
var : 변수타입 ( var 로만 사용 가능 )
value : 넣을 값. ( 숫자일 경우도 " " 쌍따움표만 가능하다. 자동형변환 해준다. )
<c:remove var="id" />
: 변수 제거
[ 중개자 JSTL ]
: Java <=> JSTL <=> EL
: JSTL 은 Java값도 <% %> 바로 가져다 쓸 수 있고, EL 값도 ${ } 바로 가져다 쓸 수 있다.
(1) 기본적으로 <% %> 자바변수를 EL ${ } 에서 사용하려면
(scope).setAttribute 에 등록해서 key 값을 통해 공유가 가능하다.
( Java 와 EL 은 서로 안친하다. )
(2) JSTL 중개
Java => JSTL
: JSTL 은 Java 값을 바로 가져올 수 있고,
JSTL => EL
: JSTL이 가져온 Java값을 EL은 바로 사용할 수 있다.
자바
<% String nick = "BackCoder"; %>
JSTL
<c:set var="id2" value="<%=nick%>"/> Java값
EL
${ id2 }
${ id2.toUpperCase() } : Java 변수 가져오면 Java 메소드 사용 가능
: 자바 변수/객체 를 JSTL 을 통해 EL 로 가져와 사용
( 반대로, EL 변수를 자바로 가져올 땐, 결국엔 getAttribute 를 사용해야 한다. )
${ id2 } : 백코더
<c:set var="백코더" value="${id2}"/>
<% String nick = request.getAttribute("id2");%>
: EL => (JSTL )=> Java
- JSTL 의 var 변수에는 value 값으로 객체, ArrayList 등 모든 Type 을 다 넣을 수 있다.
<% HashMap<String, memberDTO> dtomap = new HashMap<>(); %>
<c:set var="dtomap" value="<%=dtomap%>"/>
- JSTL변수 당연히 JSTL에서 가져다 쓸 수 있다
<c:set var="pay" value="300"/>
<c:set var="editpay" value="${ pay+100 }"/>
'Back to the JSP' 카테고리의 다른 글
[JSTL] 조건문 <c:if /> <c:choose/when/otherwise /> (0) | 2022.08.13 |
---|---|
[JSTL] 반복문 <c: forEach items var varStatus /> (0) | 2022.08.13 |
[JSP] EL - Expression Language (0) | 2022.08.11 |
jsp:useBean 사용시 jasperException 컴파일 오류. cannot be resolved to a type (0) | 2022.08.11 |
[JSP] action태그 useBean / get||setProperty (0) | 2022.08.11 |