Coding/JSP

[JSTL] core,fmt

Soocong 2022. 4. 9. 12:09

JSTL은 JSP개발할 때 간단하게 작성하기 위한 태그 라이브러리이다.

 

core 태그

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:set var="fruit" value="apple"/>
	
	<c:if test="${fruit=='apple'}">
		<h3> ${fruit} </h3>
	</c:if>
	
	<c:if test="${fruit!='apple'}">
		<h3>${fruit} 는 apple 아님</h3>
	</c:if>

	<c:if test="${fruit!='apple'}">
		<c:out value="${fruit}"/>
	</c:if>
	
	<c:out value="하하하"/>
	
	${"하하하"}
	<br /><br />
	
	<h3>제어문 - choose/when</h3>
	<c:choose>
		<c:when test="${fruit=='apple'}">
			${fruit}
		</c:when>
		
		<c:when test="${fruit=='banana'}">
			${fruit}
		</c:when>
		
		<c:when test="${fruit=='orange'}">
			${fruit}
		</c:when>
		
		<c:otherwise>기타등등</c:otherwise>
	</c:choose>
</body>
</html>

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>반복문 - for</h3>
	<c:forEach var="i" begin="1" end="10" step="2">
		<h3>${i}</h3>
	</c:forEach>
	<br /><br />
	
	<c:forEach var="i" begin="1" end="10">
		<c:if test="${i%2==0}">
			<c:out value="${i}"/>
		</c:if>
	</c:forEach>
	
	<c:forEach var="k" begin="1" end="100">
		<c:set var="tot" value="${tot+k}"/>
	</c:forEach>
	<h3>1~100배까지의 합:${tot}</h3>
	
	<%
		//스플릿: 자바 명령어 가능 - 요즘은 거의 안씀
		//<%@ page : page 지시어, <%@ taglib: tag 지시어
		int su = 77;
	
		java.util.ArrayList<String> arrList = new java.util.ArrayList<String> ();
		arrList.add("사과");
		arrList.add("딸기");
		arrList.add("바나나");
	%>
	<%= su %>
	<br />
	
	<c:set var="arrList" value="<%=arrList%>"/>
		<c:forEach var="fruit" items="${arrList}">
			<c:out value="${fruit}"/>
		</c:forEach>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:set var="city" value="서울,인천,대구,부산,광주,제주도"/>
	<c:forTokens var="data" items="${city}" delims=",">
		<c:out value="${data}"/>
	</c:forTokens>
	<br /><br />
	
	<c:set var="traffic" value="비행기,자동차,버스,승합차/자전거.오토바이"/>
	<c:forTokens var="tdata" items="${traffic}" delims=",/." varStatus="sts">
		${tdata}
		${sts.count}
	</c:forTokens>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>response.sendRedirect()를 대체하는 태그</h3>
	
	<!-- http://localhost:8181/mvcExample/JSTL/core05.jsp?su=1 -->
	<c:set var="su" value="${param.su}"/>
	
	<c:if test="${su==1}">
		<c:redirect url="core01.jsp"/>
	</c:if>

	<c:if test="${su==2}">
		<c:redirect url="core02.jsp"/>
	</c:if>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	내부자원 가져오기 : <c:import url="core01.jsp"/>
	
	외부자원 가져오기(파싱에서 프록시 작업시): <c:import url="https://www.google.com/" ></c:import>
	<!-- 스타일시트는 못 가져온다. -->
	
	자원추가시 값을 전달해주고 원하는 데이터 가져온다.
	<c:import url="http://www.google.co.kr">
		<c:param name="msg" value="hi"/>
	</c:import>
</body>
</html>


 

fmt

formatting tags

 

서식태그는 메시지 형식, 번호 및 날짜 형식 등을 지원한다.

국제화 된 웹 사이트에서 텍스트, 시간, 날짜 및 숫자를 표시하고 형식화하는데 사용한다.

 

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

 

<%@ 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" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>숫자를 문자열 변환</h3>
	number:
		<fmt:formatNumber value="12345.678" type="number"/>
	
	currency:
		<fmt:formatNumber value="12345.678" type="currency"/>
		<fmt:formatNumber value="12345.678" type="currency" currencySymbol="$"/>
	
	percent:
		<fmt:formatNumber value="12345.648" pattern=".0000"/> <%-- #, 0 --%>
		
	<h3>문자열을 숫자 변환</h3>
	<c:set var="str" value="${'1000'}"/>
	<fmt:parseNumber var="pNum" value="${str}"/>
	
	<fmt:parseNumber var="isu" value="55.7" integerOnly="true"/>
	${isu}
	
	<h3>날짜를 문자열 변환</h3>
	<jsp:useBean id="date" class="java.util.Date"/>
	<c:set var="today" value="${date}"/>
	
	날짜: <fmt:formatDate value="${date}" type="date"/><br />
	시간: <fmt:formatDate value="${date}" type="time"/><br />
	날짜시간: <fmt:formatDate value="${date}" type="both"/><br />

	날짜시간: <fmt:formatDate value="${date}" type="both" dateStyle="short" timeStyle="short"/><br />
	날짜시간: <fmt:formatDate value="${date}" type="both" dateStyle="long" timeStyle="long"/><br />
	
	패턴: <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/><br />
	
	<h3>문자열을 날짜 변환</h3>
	<c:set var="nowdate" value="2019-12-25 12:00:21"/>
	<fmt:parseDate value="${nowdate}" pattern="yyyy-MM-dd HH:mm:ss"/>
	<fmt:formatDate value="${now}" pattern="${date}"/>
</body>
</html>