Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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 more
Archives
Today
Total
관리 메뉴

기분좋음

국비 56 일차 본문

IT 포트폴리오/국비지원교육 Diary

국비 56 일차

기분좋음:) 2022. 3. 11. 18:59
반응형

JSTL

스크립트릿과 JSTL사이엔 변수 공유 하지않으므로,  따로 설정 해주어야 한다.

EX)

<% 
   Member arr = new Member();    
%> 

<c:set var="arr" value="<%=arr%>"/>

 

 

<c:if>조건문

-if문과 비슷  단, if~else문 제공X

<c:if test="조건식>
  조건이 true 일경우 실행영역
</c:if>

 

<c:choose>조건문

-switch문과 비슷 여러조건 처리

<c:choose>
    <c:when test="조건식"1> 조건식1이 참일경우 실행할 영역</c:when>
    <c:when test="조건식"2> 조건식2이 참일경우 실행할 영역</c:when>
    <c:when test="조건식"3> 조건식3이 참일경우 실행할 영역</c:when>
 </c:choose>

 

<c:forEach>반복문

-향상된 forEach문 비슷    배열, 컬렉션등의 집합체에 저장된 값을 순차적으로 처리시 사용

<c:forEach var="변수" items="반복할 집합체" ..property>
    반복할 코드
</c:forEach>
프로퍼티 설명
varStatus 각 항목의 index사용시 반복상태등을 저장하는 변수
index items 집합체의 반복중인 항목의 index (0부터 시작)
count 몇번째 반복중 count수 (1부터 시작)
first 반복의 처음인지 여부를 알려준다(boolean 타입)
last 반복의 마지막인지 여부를 알려준다(boolean 타입)
begin 반복 첫번째 항목의 index값
end 반복 마지막 항목의 index값
step 증가값

 

<c:forTokens>반복문

문자열을 구분자로 쪼개고 각각 쪼개진 문자열의 집합체로서 순차적으로 반복해서 사용하는 반복문

<c:forTokens var="토큰 저장할 변수" items="토큰으로 나눌 문자열" delims="구분자">
    반복할 코드
</c:forTokens>

 

ex)

<body>
    <c:forTokens var="city" items="서울,인천,대구,부산" delims=",">
${city}<br>
    </c:forTokens><hr> 
    <c:forTokens var="city" items="서울,인천,대구,부산" delims=",">
${city}<br>
    </c:forTokens>  
</body>

forTokens 결과

구분자 , 로 구분해서 반복해준다.

 

 

<c:import> -<jsp:include>역할과 동일(웹페이지 url도 불러옴)

지정된 페이지를 불러와서 변수에 저장해 두고 해당 변수를 호출할 때 해당 페이지에서 가져온 결과를 출력

<c:import var="저장할 변수" url="URL 주소" scope="변수를 저장할 영역"
charEncoding="UTF-8">
</c:import>

ex)

<body> 
    <c:import url="http://localhost:8081/edu/6page/exam2forEach/foreach.jsp" var="data"></c:import>
    <!-- url은 뭐든지 가능 네이버 화면도 출력가능 됨 -->
    ${data}
    ${data}    
</body>

data에 url자체를 넣어주고, data변수로 불러올 수 있다.

 

<c:url> URL을 생성해서 적절한 위치에 사용

<c:url var="저장할 변수" value="URL" scope="변수를 저장할 영역>
</c:url>

 

<c:redirect>

 

지정한 페이지로 이동시 사용 -response.sendRedirect와 동일

<c:redirect url="URL"/>

간단하게 URL로 이동한다.

 

<c:out>

출력 태그 -표현식이나 표현언어와 동일 → 자주 사용X

<c:out value="출력할 값" [default="기본값"]/>

 

<c:catch>

예외처리를 위한 태그 (예외 발생시 잡아냄)

<c:catch var="발생한 예외가 저장될 변수">
    예외 발생할 가능성있는 코드
</c:catch>

 

fmt태그

-포맷팅에 관련된 태그모음

-숫자, 날짜, 시간의 형식을 다루는데 사용

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
기능 태그 설명
숫자
날짜
양식
<fmt:formatNumber> 숫자를 양식에 맞춰서 출력
<fmt:formatDate> 날짜 정보 담고있는 객체를 포맷하여 출력
<fmt:parseDate> 문자열을 날자로 변환
<fmt:parseNumber> 문자열을 숫자로 변환
<fmt:setTimeZone> 시간대 별로 시간처리 기능 제공
<fmt:timeZone> 시간대 별로 시간처리 기능 제공
로케일
지정
<fmt:setLocale> 국제화 태그들이 사용할 로케일 지정
<fmt:requestEncoding> 요청 파라미터의 인코딩 지정
메세지
처리
<fmt:bundle> 태그 몸체에서 사용할 리소스 번들(묶음) 지정
<fmt:message(param)> 메세지 출력
<fmt:setBundle> 특정 리소스 번들 사용하도록 로딩

 

 

 

<fmt:formatNumber>

속성 표현식 타입 설명
value true String 또는 Number 형식화 할 숫자 데이터
type true String 숫자, 통화, 퍼센트중 형식 지정
pattern true String 사용자가 지정한 형식 패턴
currencySymbol true String 통화기호, 통화형식(type="currency") 입력후 적용  
groupingUsed true boolean 단위 구분자( , )의 사용 여부 true면 사용(기본) false면 미사용
var false String 형식 출력 결과 문자열을 담는 scope에 해당하는 변수 이름
scope false String var 속성에 지정한 변수가 효력을 발휘 할수있는 영역 지정

pattern #, 0, .으로 표기

 #은 빈자리를 공백으로 표기

 0은 빈자리를 0으로 채워 표기

ex) <fmt:formatNumber value="1234567.8" pattern="#,#00.0#" />  → 1,234,567.8

     <fmt:formatNumber value="1234567.89" groupingUsed="false"/>   → 1234567.89

     <fmt:formatNumber value=“0.5” type=“percent” /> => 50%

     <fmt:formatNumber value=“10000” type=“currency” currencySymbol=“$”/> → $10,000 

 

 

 

<fmt:formatDate>

속성 표현식 타입 설명
value true java.util.Date 형식화 될 Date와 time
type true  String 형식화 할 데이터를 시간(time), 날짜(date), 둘다(both) 중
셋 중 하나를 지정
dateStyle true String 정의된 날짜 형식 default, short, medium, long, full 중 하나를 지정 
timeStyle true String 정의된 시간 형식 short, medium, long, full 중 하나를 지정
pattern true String 사용자 지정 형식 스타일
timeZone true String또는 
java.util.TimeZone
형식화된 시간에 나타날 타임존
var false String 형식 출력 결과 문자열을 담는 scope에 해당하는 변수이름
scope false String var의 scope
더보기

 ex)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> //사용할 jstl 선언
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <pre><c:set var="now" value="<%=new java.util.Date()%>"></c:set> // 날짜 객체 생성
\${now} : ${now}
<fmt:formatDate value="${now}"></fmt:formatDate>
date: <fmt:formatDate value="${now}" type="date"></fmt:formatDate>    
time: <fmt:formatDate value="${now}" type="time"></fmt:formatDate>    
both: <fmt:formatDate value="${now}" type="both"></fmt:formatDate>    
default: <fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default"></fmt:formatDate>    
short: <fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short"></fmt:formatDate>    
medium: <fmt:formatDate value="${now}" type="both" dateStyle="medium" timeStyle="medium"></fmt:formatDate>    
long: <fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate>    
full: <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate>    
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초":
<fmt:formatDate value="${now}" pattern="yyyy년 MM월 dd일 hh시 mm분 ss초"></fmt:formatDate>    
    </pre>
</body>
</html>

결과 값:

${now} : Mon Mar 14 11:48:23 KST 2022
2022. 3. 14
date: 2022. 3. 14    
time: 오전 11:48:23    
both: 2022. 3. 14 오전 11:48:23    
default: 2022. 3. 14 오전 11:48:23    
short: 22. 3. 14 오전 11:48    
medium: 2022. 3. 14 오전 11:48:23    
long: 2022년 3월 14일 (월) 오전 11시 48분 23초    
full: 2022년 3월 14일 월요일 오전 11시 48분 23초 KST    
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초":
2022년 03월 14일 11시 48분 23초 

<fmt:setTimeZone>-특정 지역 타임존 설정하는 태그

<fmt:setTimeZone value="타임존" />

 

<fmt:timeZone> -타임존을 부분 적용하는 태그

<fmt:timeZone value="타임존" />

  타임존 적용 영역

</fmt:timeZone>

 

 

<fmt:setLocale>

통화 설정 태그

<fmt:setLocale value="언어코드_국가코드" />

ex) 한국 ko_KR 한글  영어 en_US 일본 ja_JP

 

<fmt:requestEncoding>

-POST방식으로 넘어온 데이터의 글자가 깨지지 않도록 처리하기 위한 태그

-기존 request.setCharacterEncoding()메소드와 같은 역할

 

<fmt:requestEncoding value="UTF-8" />

같은 역할 수행

   <%
        request.setCharacterEncoding("UTF-8");
    %>
    이름 : 
    <%=request.getParameter("name")%>
<fmt:requestEncoding value="UTF-8"></fmt:requestEncoding>
    이름: <c:out value="${param.name}"></c:out>
반응형

'IT 포트폴리오 > 국비지원교육 Diary' 카테고리의 다른 글

국비 58 일차  (0) 2022.03.15
국비 57 일차  (0) 2022.03.14
국비 55 일차  (0) 2022.03.10
국비 54 일차  (0) 2022.03.08
국비 53 일차  (0) 2022.03.07