WEB/JSTL
[JSTL] import, redirect, format, form, checkbox
hvoon
2022. 9. 9. 20:22
import
-JSP의 include와 같은 역할을 하지만 include된 내용을 변수에 저장하여 사용할 수 있다는 것이 다름
<c:import
url="http://localhost:8090/WEB07_JSP_SERVLET/05/07_ForEach02.jsp"
var="data1" />
${data1}

*프로젝트 안 webapp 폴더에 images가 있어야 함
<c:url value="../images/Koala.jpg" var="data2"></c:url>
<img src="${data2 }" width='150' height='150'>

redirect
JSTL
<c:redirect url="08_Import.jsp"></c:redirect>
JSP
<% response.sendRedirect("08_Import.jsp"); %>
format
<%@ 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>10_Format01.jsp</title>
</head>
<body>
<!-- 오늘날짜 발생 및 변수 저장 -->
<c:set var="now" value="<%=new java.util.Date() %>"></c:set>
</body>
</html>
1. 일반적인 출력
<h2>\${now}: ${now }</h2>
2. JSTL 포맷팅에 의한 출력
<fmt:formatDate value="${now}"></fmt:formatDate><br>
date: <fmt:formatDate value="${now}" type="date"></fmt:formatDate>
<br>
time: <fmt:formatDate value="${now}" type="time"></fmt:formatDate>
<br>
both: <fmt:formatDate value="${now}" type="both"/>

default: <fmt:formatDate value="${now}" type="both"
dateStyle="default" timeStyle="default"/><br>
short: <fmt:formatDate value="${now}" type="both"
dateStyle="short" timeStyle="short"/><br>
medium: <fmt:formatDate value="${now}" type="both"
dateStyle="medium" timeStyle="medium"/><br>
long: <fmt:formatDate value="${now}" type="both"
dateStyle="long" timeStyle="long"/><br>
full: <fmt:formatDate value="${now}" type="both"
dateStyle="full" timeStyle="full"/><br>

-형식에 맞춰서 출력
<fmt:formatDate value="${now}" pattern="yyyy년 MM월 hh시 mm분 ss초"/>

-Locale
<h3>톰캣 서버의 기본 로케일:<%=response.getLocale() %></h3>
<!-- 혹시 다른 곳으로 되어 있다면 -->
<fmt:setLocale value="ko_KR"/>
<h3>로케일을 한국으로 설정 후 로케일 확인: <%=response.getLocale()%>
</h3>
<h3>
통화(currency): <fmt:formatNumber value="10000" type="currency"/>
<br>
숫자(number):
<fmt:formatNumber value="10000.1234" type="number"
maxFractionDigits="2"/><br>
<!-- maxFractionDigits: 소수점 자리수 -->
<c:set var="now" value="<%=new java.util.Date() %>"></c:set>
날짜: <fmt:formatDate value="${now }" />
</h3>

<fmt:setLocale value="en_US"/>
로케일을 영어로 설정 후 로케일 확인: <%=response.getLocale() %>
<br>
통화(currency): <fmt:formatNumber value="10000" type="currency"/>
<br>
날짜: <fmt:formatDate value="${now }" />

<fmt:setLocale value="ja_JP"/>
로케일을 일본어로 설정 후 로케일 확인: <%=response.getLocale()%>
<br>
통화(currency): <fmt:formatNumber value="10000" type="currency"/>
<br>
날짜: <fmt:formatDate value="${now }" />

-Encoding 설정
<fmt:requestEncoding value="UTF-8"/>
<%-- <%request.setCharacterEncoding("UTF-8");%> --%>
form
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>121_ParameterForm.jsp</title>
</head>
<body>
<form method="post" action="122_ParameterTo.jsp">
<label for="userid"> 아이디 </label>
<input type="text" name="id" id="userid"><br>
<label for="userpwd"> 암 호: </label>
<input type="password" name="pwd" id="pwd"><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>122_ParameterTo.jsp</title>
</head>
<body>
당신이 입력한 정보입니다(고전방식).<hr>
아이디: <%=request.getParameter("id") %><br>
비밀번호: <%=request.getParameter("pwd") %><br><br>
당신이 입력한 정보입니다(EL방식).<hr>
아이디: ${param.id} <br>
비밀번호: ${param["pwd"]}
</body>
</html>
checkbox
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>131_CheckBox_EL.jsp</title>
</head>
<body>
<h2>악세사리</h2>
관심항목을 선택하세요.
<hr>
<form method="get" action="132_CheckBox_EL_to.jsp">
<input type="checkbox" name="item" value="신발">신발
<input type="checkbox" name="item" value="가방">가방
<input type="checkbox" name="item" value="벨트">벨트
<input type="checkbox" name="item" value="모자">모자
<input type="checkbox" name="item" value="시계">시계
<input type="checkbox" name="item" value="쥬얼리">쥬얼리
<input type="submit" value="전송">
</form>
</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>132_CheckBox_EL_to.jsp</title>
</head>
<body>
<%--
체크박스의 다중 선택 value들이 파라미터로 전달되어 EL로 수신하는 키워드: ${paramValues.item}
--%>
<c:forEach var="item" items="${paramValues.item }"
varStatus="status">
${item }<c:if test="${not status.last}">, </c:if>
</c:forEach><br><br>
</body>
</html>