- <c:foreach>
<c:foreach items="${리스트가 받아올 배열이름}"
var="for문 내부에서 사용할 변수"
varStatus="상태용 변수">
</c:foreach>
- forEachTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% request.setCharacterEncoding("utf-8"); %>
<%
List dataList = new ArrayList();
dataList.add("김철수");
dataList.add("이영희");
dataList.add("홍길동");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>반복문 연습</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5" step="1">
<h2>안녕하세요(i=${i })</h2>
</c:forEach>
<c:forEach var="i" begin="1" end="10" step="1">
<h2>${i }개 가격 : (i=${i*200 })</h2>
</c:forEach>
<c:forEach var="i" begin="1" end="30" step="3" varStatus="loop">
<c:if test="${loop.last}">
<h2>마지막 수행했을 때 i=${i}</h2>
</c:if>
<h2>i=${i } 반복횟수=${loop.count }</h2>
</c:forEach>
<c:set var="fruits" value="사과, 감, 포도, 바나나, 귤" />
<c:forTokens var="token" items="${fruits }" delims=","> <%--delims : 구분자 --%> ////
<h2>${token }</h2>
</c:forTokens>
<c:set var="list" value="<%=dataList %>" />
<c:forEach var="data" items="${list }"> ////
<h2>${data}님 환영합니다</h2>
</c:forEach>
</body>
</html>
- 변수 설정 => 콜렉션 객체 출력
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, jsp04.ex01.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
List memberList = new ArrayList();
MemberBean mem1 = new MemberBean("son","1111", "손흥민", "son@gmail.com");
MemberBean mem2 = new MemberBean("son2","2222", "손흥민2", "son2@gmail.com");
MemberBean mem3 = new MemberBean("son3","3333", "손흥민3", "son3@gmail.com");
MemberBean mem4 = new MemberBean("son4","4444", "손흥민4", "son4@gmail.com");
MemberBean mem5 = new MemberBean("son5","5555", "손흥민5", "son5@gmail.com");
memberList.add(mem1);
memberList.add(mem2);
memberList.add(mem3);
memberList.add(mem4);
memberList.add(mem5);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>조건문 실습2</title>
</head>
<body>
<c:set var="memberList" value="<%=memberList %>"/>
<table border="1" align="center">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th>
</tr>
<c:forEach var="i" begin="0" end="4" step="1">
<tr>
<td>${memberList[i].id }</td>
<td>${memberList[i].pwd }</td>
<td>${memberList[i].name }</td>
<td>${memberList[i].email }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
//
아이디 비밀번호 이름 이메일
son 1111 손흥민 son@gmail.com
son2 2222 손흥민2 son2@gmail.com
son3 3333 손흥민3 son3@gmail.com
son4 4444 손흥민4 son4@gmail.com
son5 5555 손흥민5 son5@gmail.com
- 변수 & items 속성 설정 => 콜렉션 객체 출력
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, jsp04.ex01.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
List memberList = new ArrayList();
MemberBean mem1 = new MemberBean("son","1111", "손흥민", "son@gmail.com");
MemberBean mem2 = new MemberBean("son2","2222", "손흥민2", "son2@gmail.com");
MemberBean mem3 = new MemberBean("son3","3333", "손흥민3", "son3@gmail.com");
MemberBean mem4 = new MemberBean("son4","4444", "손흥민4", "son4@gmail.com");
MemberBean mem5 = new MemberBean("son5","5555", "손흥민5", "son5@gmail.com");
memberList.add(mem1);
memberList.add(mem2);
memberList.add(mem3);
memberList.add(mem4);
memberList.add(mem5);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>조건문 실습2</title>
</head>
<body>
<c:set var="memberList" value="<%=memberList %>"/>
<table border="1" align="center">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th>
</tr>
<c:forEach var="member" items="${memberList }"> ////
<tr>
<td>${member.id }</td>
<td>${member.pwd }</td>
<td>${member.name }</td>
<td>${member.email }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
- <c:url> : url 정보 저장
<c:url var="변수명" value="url경로">
<c:param name="매개변수명" value="전달값" />
</c:url>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지에 전달</title>
</head>
<body>
<c:url var="urlMem" value="member8.jsp"> ////
<c:param name="id" value="hong"/>
<c:param name="pwd" value="12345"/>
<c:param name="name" value="홍길동"/>
<c:param name="email" value="hong@gmail.com"/>
</c:url>
<a href="${urlMem }">회원정보 출력</a> ////
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, jsp04.ex01.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>url 실습</title>
</head>
<body>
<table border="1" align="center">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th>
</tr>
<tr>
<td>${param.id }</td> ////
<td>${param.pwd }</td> ////
<td>${param.name }</td> ////
<td>${param.email }</td> ////
</tr>
</table>
</body>
</html>
//이동 시 주소
http://localhost:8070/jsp04/member8.jsp?id=hong&pwd=12345&name=%ed%99%8d%ea%b8%b8%eb%8f%99&email=hong%40gmail.com
=>
urlTest.jsp에서 a태그에 파라미터 정보 저장
a태그 통해 member8.jsp 방문시 get 방식으로 요청 파라미터 전달됨
- <c:redirect> : 해당 페이지로 바로 리다이렉트
<c:redirect url="리다이렉트할 URL">
<c:param name="매개변수명" value="전달값"/>
</c:redirect>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>페이지에 전달</title>
</head>
<body>
<c:redirect url="member8.jsp">
<c:param name="id" value="hong"/>
<c:param name="pwd" value="12345"/>
<c:param name="name" value="홍길동"/>
<c:param name="email" value="hong@gmail.com"/>
</c:redirect>
<a href="${urlMem }">회원정보 출력</a>
</body>
</html>
=> 파라미터 전달하며 member8.jsp로 바로 이동
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, jsp04.ex01.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>url 실습</title>
</head>
<body>
<table border="1" align="center">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th>
</tr>
<tr>
<td>${param.id }</td>
<td>${param.pwd }</td>
<td>${param.name }</td>
<td>${param.email }</td>
</tr>
</table>
</body>
</html>
//
아이디 비밀번호 이름 이메일
hong 12345 홍길동 hong@gmail.com
- <c:out> : 출력
<c:out value="${출력할 값}" />
출력값 없을 때 default 값 설정 가능 <default="기본값">
escape 문자 사용 가능 <escapeXml="false">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입 창</title>
<script type="text/javascript">
function fn_sendMember(){
let frmMember = document.frmMember;
frmMember.method="post";
frmMember.action="member9.jsp"; ////
frmMember.submit();
}
</script>
</head>
<body>
<form name=frmMember>
<h2>회원가입 창</h2>
<table>
<tr>
<td>아이디</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="text" name="email"></td>
</tr>
</table>
<input type="button" value="가입하기" onclick="fn_sendMember()">
<input type="reset" value="다시 입력">
<input type="hidden" name="command" value="addMember"> </form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*, jsp04.ex01.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>url 실습</title>
</head>
<body>
<table border="1" align="center">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th>
</tr>
<c:choose>
<c:when test="${empty param.name }">
<tr align="center">
<td colspan="4">이름을 입력해주세요</td>
</tr>
</c:when>
<c:otherwise>
<tr align="center">
<td><c:out value="${param.id }" /></td> ////JSTL
<td><c:out value="${param.pwd }" /></td> ////
<td>${param.name }</td> //표현언어
<td>${param.email }</td>
</tr>
</c:otherwise>
</c:choose>
</table>
</body>
</html>
- escape 문자
<%@ 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>escape 변환</title>
</head>
<body>
<h2>escape 변환하기</h2>
<h2>
<pre>
<c:out value="<" escapeXml="true" />
<c:out value="<" escapeXml="false" />
<c:out value=">" escapeXml="true" />
<c:out value=">" escapeXml="false" />
<c:out value="&" escapeXml="true" />
<c:out value="&" escapeXml="false" />
</pre>
</h2>
</body>
</html>
//
escape 변환하기
<
<
>
>
&
&
코어 라이브러리 문제
- forEach로 구구단 출력
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>구구단</title>
</head>
<body>
<h2>출력할 구구단을 지정해주세요</h2>
<form action="guguResult.jsp" method="get">
출력할 단 : <input type="text" name="dan"><br>
<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" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>구구단 출력</title>
</head>
<body>
<c:set var="dan" value="${param.dan }" />
<h2 align="center">${dan }단</h2>
<c:forEach var="i" begin="1" end="9" step="1">
<table border="1" align="center" >
<tr align="center">
<td width=50>${dan } X ${i }</td><td width=20>${dan * i }</td>
</tr>
</table>
</c:forEach>
</body>
</html>
- 상품목록 리스트 (표현언어, forEach)
상품이미지 상품이름 선택(체크박스)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% String[] goods = {"냉장고","컴퓨터","세탁기","에어컨","청소기"}; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>상품목록</title>
</head>
<body>
<c:set var="goods" value="<%=goods%>"/>
<table border="1" align="center">
<tr>
<th>상품 이미지</th><th>상품 이름</th><th>선택하기</th>
</tr>
<c:forEach var="i" begin="0" end="4" step="1">
<tr>
<td><img src="images/${i }.jpg" width="100" height="100"></td>
<td align="center">${goods[i]}</td>
<td align="center"><input type="checkbox" name="chk${i}"></td>
<tr>
</c:forEach>
</table>
</body>
</html>
https://gangzzang.tistory.com/entry/JSP-JSTLJSP-Standard-Tag-Library-%EA%B5%AD%EC%A0%9C%ED%99%94-%ED%83%9C%EA%B7%B8%ED%8F%AC%EB%A7%B7%ED%8C%85
https://luigi-yoon.tistory.com/12
JSTL - fmt 라이브러리
특정 지역에 따른 다국어 처리, 숫자/날짜 포매팅 수행
기능 | 태그 | 설명 |
로케일 지정 | setLocale | Locale을 지정 |
requestEncoding | 요청 파라미터의 캐릭터 인코딩을 지정 | |
메시지 처리 | bundle | 사용할 번들을 지정 |
message | 지역에 알맞은 메시지를 출력 | |
setBundle | 리소스 번들을 읽어와 특정 변수에 저장 | |
숫자 및 날짜 포맷팅 | formatNumber | 숫자를 포맷팅 |
formatDate | Date 객체를 포맷팅 | |
parseDate | 문자열로 표시된 날짜를 분석해서 Date 객체로 변환 | |
parseNumber | 문자열로 표시된 날짜를 분석해서 숫자로 변환 | |
setTimeZone | 시간대 정보를 특정 변수에 저장 | |
timeZone | 시간대를 지정 |
※ 아스키코드 한글 호환
help - install new software - add.. 에 주소 입력 (http://propedit.sourceforge.jp/eclipse/updates/)
Properties Editor 체크
- 다국어
패키지 우클릭 - new - other - general - file
=> member.properties, member_en.properties, member_ko.properties 생성
- 리소스 번들 파일 => 번들이름_언어(_국가).properties
○ member.properties
mem.title=\uD68C\uC6D0 \uC815 \uBCF4
mem.name=\uC774\uB984:\uD64D\uAE38\uB3D9
mem.address=\uC8FC\uC18C:\uC11C\uC6B8\uC2DC \uAC15\uB0A8\uAD6C
mem.job=\uC9C1\uC5C5:\uAC1C\uBC1C\uC790
○ member_ko.properties
mem.title=\uD68C\uC6D0 \uC815 \uBCF4
mem.name=\uC774\uB984:\uD64D\uAE38\uB3D9
mem.address=\uC8FC\uC18C:\uC11C\uC6B8\uC2DC \uAC15\uB0A8\uAD6C
mem.job=\uC9C1\uC5C5:\uAC1C\uBC1C\uC790
○ member_en.properties
mem.title=memberList
mem.name=name:hong gil-dong
mem.address=address:gang-nam gu, seoul
mem.job=job:software engineer
○ main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>다국어 지원 홈페이지</title>
</head>
<body>
<a href="main_ko.jsp">한국어</a>
<a href="main_en.jsp">영어</a>
<fmt:bundle basename="resource.member"> ////
<h1>회원정보</h1>
<h2>이름 : 홍길동</h2>
<h2>주소 : 서울시 강남구</h2>
<h2>직업 : 개발자</h2>
</fmt:bundle>
</body>
</html>
○main_ko.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>다국어 지원 홈페이지</title>
</head>
<body>
<fmt:setLocale value="ko_KR"/> ////
<a href="main_ko.jsp">한국어</a>
<a href="main_en.jsp">영어</a>
<fmt:bundle basename="resource.member"> ////
<h1><fmt:message key="mem.title"/></h1> ////
<h1><fmt:message key="mem.name"/></h1>
<h1><fmt:message key="mem.address"/></h1>
<h1><fmt:message key="mem.job"/></h1>
</fmt:bundle>
</body>
</html>
○main_en.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>다국어 지원 홈페이지</title>
</head>
<body>
<fmt:setLocale value="en_US"/>
<a href="main_ko.jsp">Korean</a>
<a href="main_en.jsp">English</a>
<fmt:bundle basename="resource.member">
<h1><fmt:message key="mem.title"/></h1>
<h1><fmt:message key="mem.name"/></h1>
<h1><fmt:message key="mem.address"/></h1>
<h1><fmt:message key="mem.job"/></h1>
</fmt:bundle>
</body>
</html>
- 숫자 포매팅
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>포매팅 태그 라이브러리2</title>
</head>
<body>
<h2>포매팅 라이브러리 예제</h2>
<c:set var="price" value="45000000"/>
<fmt:formatNumber value="${price }" type="number" var="priceNumber"/>
<h2>상품 판매 가격 = ${priceNumber}</h2>
<c:set var="rate" value="0.2" />
<fmt:formatNumber value="${rate }" type="percent" var="rateNum" />
<h2>할인율 : ${rateNum}</h2>
<c:set var="price2" value="23000"/>
<fmt:formatNumber value="${price2}" type="currency" var="priceNumber2" currencySymbol="₩" /> //currencySymbol 디폴트: ₩
<h2>상품 판매 가격 = ${priceNumber2}원</h2>
</body>
</html>
//
포매팅 라이브러리 예제
상품 판매 가격 = 45,000,000
할인율 : 20%
상품 판매 가격 = ₩23,000원
'Programming > 국비학원' 카테고리의 다른 글
221017 - 리눅스 환경설정 (0) | 2022.10.18 |
---|---|
221013 - JSTL(fmt/fn 라이브러리, 등록/조회 구현) & 서블릿(URL 패턴,파일 다운로드/업로드) (0) | 2022.10.15 |
221012 - JSTL (5) | 2022.10.12 |
221007 - EL - empty 연산자, 내장객체, 스코프 우선순위 (0) | 2022.10.09 |
221006 - JSP - 액션태그, EL (0) | 2022.10.07 |