일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ThreadGroup()
- char[] String 형변환
- 표현 언어
- Daemon()
- StringReader
- first-child
- sleep()메소드
- 스레드그룸
- Linux세팅
- 리눅스세팅
- MemoryStream
- String char[] 형변환
- first-of-child
- 상관서브쿼리
- isinterrupted()
- InputDialog
- include 지시자
- 메모리스트림
- 아이디중복
- Linux셋팅
- include지시자
- StringWriter
- interrupted()
- ID중복
- 리눅스셋팅
- 상관 서브 쿼리
- include액션태그
- 동기화
- interrupt()
- ObjectInputStream
- Today
- Total
다연이네
[days07] 표준 태그 라이브러리(JSTL) 본문
[JSTL 정의]
커스텀 태그 : 개발자들이 필요에 의해 태그를 만들어 사용할 수 있다.
많은 개발자가 [공통적으로 사용할 커스텀 태그]를 만들어 사용을 하더라
이를 표준화 시켜놓은 것이 JSTL이다.
[JSTL 기능]
1. 변수 지원 태그 c:set
2. 흐름 제어 태그 c:forEach c:if c:choose 등
3. URL 처리 태그
4. 출력 태그
5. 국제화 태그
6. 함수
[JSTL 사용하려면]
1. WEB-INF > lib > jstl-1.2.jar 추가
https://mvnrepository.com/
다운로드
2. 라이브러리 다운로드 및 추가
[JSTL이 제공하는 태그 종류]
주요 기능 접두어 관련 URI
1. 코어 변수 지원 c https://java.sun.com/jsp/jstl/core
흐름 제어
URL 처리
2. xml xml 코어 x https://java.sun.com/jsp/jstl/xml
흐름 제어
xml 변환
3. 국제화 지역 fmt https://java.sun.com/jsp/jstl/fmt
메시지 형식
숫자, 날짜 형식
4. 데이터베이스 SQL sql https://java.sun.com/jsp/jstl/sql
5. 함수 컬렉션 처리 fn https://java.sun.com/jsp/jstl/functions
문자열(String) 처리
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
1. 코어 태그 종류
1. 변수 지원 태그 : set, remove
ㄱ. set 태그 - EL 변수의 값이나 EL 변수의 프로퍼티 값을 지정할 때 사용
2. 흐름 제어 태그 : if, choose, forEach, forTokens
3. URL 처리 태그 : import, redirect, url
4. 기타 태그 : catch, out
변수 선언
<c:set scope="page" var="name" value="홍길동"></c:set>
scope 기본은 page
var el 에서 사용할 변수명
value 상수값
target, property 같이 사용
value 속성값으로 표현식(%=name%>), EL(param.age)을 사용할 수 있다.
<c:set var="name" value="배다연"></c:set>
name: ${name} <br>
<%
String name= "김동준";
%>
<c:set var="name" value="<%=name %>"></c:set>
name: ${name }
<c:set var="age" value='<%=request.getParameter("age") %>'></c:set><br>
age: ${age}
<c:set var="age" value="${param.age }"></c:set>
age2: ${age }
파라미터로 23을 넘겨주면 위와 같이 출력된다.
${ } 내부에서 사용하려면 위에서 <% setAttribute %> 해줘야 한다.
<%
DeptDTO dto = new DeptDTO(10, "QC", "SEOUL");
request.setAttribute("dto2", dto);
%>
detptno = <%=dto.getDeptno() %> <br>
dname = <%=dto.getDname() %> <br>
deptno = ${dto2.deptno } <br>
dname= ${dto2.dname }<br>
seoul을 pohang으로 교체하자 dto.setLoc("Pohang");
loc2 = ${dto2.loc} <br>
<%
dto.setLoc("Pohang");
%>
loc = <%=dto.getLoc() %><br>
loc2 = ${dto2.loc} <br>
위 코딩와 100% 똑같은 코딩 - JSTL 사용
<c:set target="<%=dto %>" property="loc" value="Pohang"></c:set>
<!-- 타겟:객체 프로퍼티:해당 객체의 게터세터 -->
dto의 loc 값을 Pohang으로 바꾸겠다는 의미
var로 객체를 받을 수 도 있다.
<c:set value="<%=dto %>" var="deptDto"></c:set>
<!-- var로 객체를 받을 수 도 있다. -->
<c:set target="${deptDto }" property="deptno" value="20"></c:set>
deptDto의 deptno: ${deptDto.deptno }
c코딩으로 맵(Map)을 다룰 수도 있다.
<%
Map<String, String> map = new HashMap<>();
map.put("id","bdy");
map.put("addr","seoul");
%>
<c:set target="<%=map %>" property="name" value="bae"></c:set>
<!-- map.put("name","lee") 와 같은코딩, c코딩으로 맵을 다룰 수 있다는 점 -->
map = <%=map %><br>
위를 EL을 사용해 출력하고 싶다.
방법1 request.setAttribute
<%
Map<String, String> map = new HashMap<>();
map.put("id","bdy");
map.put("addr","seoul");
request.setAttribute("map", map);
%>
<c:set target="<%=map %>" property="name" value="bae"></c:set>
map = ${map }
방법2 c:set에 저장
<%
Map<String, String> map = new HashMap<>();
map.put("id","bdy");
map.put("addr","seoul");
%>
<c:set target="<%=map %>" property="name" value="bae"></c:set>
<c:set var="map" value="<%=map %>"></c:set>
el map = ${map}
'JSP' 카테고리의 다른 글
[days08] 숫자 및 날짜 포맷팅 처리 태그 (fmt) (0) | 2021.01.05 |
---|---|
[days08] c태그들 (c:if, c:choose, c:forEach, c:forTokens, c:url, c:redirect c:out, c:catch) (0) | 2021.01.05 |
[days07] EL(표현 언어) (0) | 2021.01.04 |
[days07] 세션을 사용해서 로그인 처리(상태 관리)(회원/비회원/관리자) (0) | 2021.01.04 |
[days07] 세션(Session) (0) | 2021.01.04 |