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>