jstl을 사용하기 위해서는 jar파일이 필요하다.
CH03_JSP => WEB-INF => lib폴더
package kr.web.member =>
Member
package kr.web.member;
public class Member {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
s01_set.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="kr.web.member.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>set 태그</title>
</head>
<body>
<%-- 속성명 속성값 영역 --%>
<c:set var="msg" value="봄" scope="page"/>
<c:set var="msg2" value="여름" scope="request"/>
<c:set var="msg3" value="가을" scope="session"/>
<c:set var="msg4" value="겨울" scope="application"/>
${pageScope.msg}, ${msg}<br>
${requestScope.msg2}, ${msg2}<br>
${sessionScope.msg3}, ${msg3}<br>
${applicationScope.msg4}, ${msg4}<br>
<%
Member member = new Member();
%>
<%-- page 영역에 Member 객체 저장 --%>
<c:set var="member" value="<%= member %>"/>
<%-- Member 객체의 name 멤버변수에 데이터 저장 --%>
<%--
target : 값을 설정하고자 하는 객체를 명시
property : 값이 저장되는 멤버변수
--%>
<c:set target="${member}" property="name" value="홍길동"/> <!-- 자동으로 setName이 호출 -->
회원 이름 : ${member.name}<br> <!-- 자동으로 getName이 호출 -->
회원 이름 : ${member.getName()}<br>
</body>
</html>
s02_remove.jsp
<%@ 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>remove 태그</title>
</head>
<body>
<c:set var="city" value="인천"/>
데이터 삭제 전 : ${city}<br>
---------------------<br>
<c:remove var="city"/>
데이터 삭제 후 : ${city}
</body>
</html>
s03_if.jsp
<%@ 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>if 태그</title>
</head>
<body>
<c:if test="true">
무조건 수행<br>
</c:if>
<%-- 문자열 문자열 이므로 java는 ==가 아닌 equals를 써야되는게 맞지만 el은 ==(비교연산자)를씀. --%>
<c:if test="${param.name=='dragon'}">
name 파라미터의 값이 ${param.name}입니다.<br>
</c:if>
<%-- tomcat 7버전 이상부터는 el도 equals 비교 지원 --%>
<c:if test="${param.name.equals('dragon')}">
name 파라미터의 값이 ${param.name}입니다.<br>
</c:if>
<c:if test="${param.age >=20}">
당신의 나이는 20세 이상입니다.
</c:if>
</body>
</html>
s04_choose.jsp
<%@ 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>choose 태그</title>
</head>
<body>
<c:choose>
<c:when test="${param.name == 'dragon' && param.age >=20}">
당신의 이름은 ${param.name}이고 20세 이상입니다.
</c:when>
<c:when test="${param.name == 'dragon'}">
당신의 이름은 ${param.name}입니다.
</c:when>
<c:when test="${param.age >=20}"><!-- 파라미터로 넘어오면 String으로만 받아오는데 이를 자동으로 int로 바꿔준다. -->
당신은 20세 이상입니다.
</c:when>
<c:otherwise>
당신은 dragon이 아니고 20세 이상이 아닙니다.
</c:otherwise>
</c:choose>
</body>
</html>
s05_forEach.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forEach 태그</title>
</head>
<body>
<h4>1부터 100까지의 홀수의 합</h4>
<c:set var="sum" value="0"/>
<c:forEach var="i" begin="1" end="100" step="2">
<c:set var="sum" value="${sum+i}"/>
</c:forEach>
결과 = ${sum}
<h4>구구단 : 5단</h4>
<ul>
<c:forEach var="i" begin="1" end="9" step="1">
<li>5 * ${i} = ${5*i}</li>
</c:forEach>
</ul>
<h4>int형 배열</h4>
<c:set var="intArray" value="<%= new int[]{10,20,30,40,50} %>"/>
<c:forEach var="i" items="${intArray}" begin="2" end="4" varStatus="status"><!--begin="2" end="4" => 인덱스 2번부터 4번까지 읽기위함 -->
<%-- 인덱스 반복돌리는 횟수 값 첫번째 반복여부: 첫번째면 true 마지막 반복여부: 마지막이면 true --%>
${status.index} - ${status.count} - [${i}] - ${status.first} - ${status.last}<br>
</c:forEach>
<h4>Map</h4>
<%
HashMap<String,String> mapData = new HashMap<String,String>();
mapData.put("name","홍길동");
mapData.put("job","소방관");
mapData.put("hobby","영화감상");
%>
<c:set var="map" value="<%= mapData %>"/>
<c:forEach var="i" items="${map}">
${i.key} = ${i.value}<br>
</c:forEach>
</body>
</html>
s06_forTokens.jsp
<%@ 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>forTokens 태그</title>
</head>
<body>
<h4>쉼표와 점을 구분자로 사용</h4>
<c:forTokens items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색" var="token" delims=",.">
${token}<br>
</c:forTokens>
<h4>날짜를 연월일시분초로 구분해서 출력</h4>
<c:forTokens items="2024-05-07 14:09:20" var="now" delims="- :">
${now}<br>
</c:forTokens>
</body>
</html>
s07_import.jsp
<%@ 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>Import 태그</title>
</head>
<body>
<h1>Import 태그 연습</h1>
<c:import url="https://www.daum.net"/>
<h1>import 태그 연습 끝~~~~</h1>
</body>
</html>
s08_out.jsp
<%@ 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>out 태그</title>
</head>
<body>
<%-- escapeXml = "true" 이면 html 태그 불인정(기본값) --%>
<c:out value="<h1>오늘은 좋은날<h1>" escapeXml="true"/>
<%-- escapeXml="false"이면 html 태그 인정 --%>
<c:out value="<h1>오늘은 좋은날<h1>" escapeXml="false"/>
</body>
</html>
s09_catch.jsp
<%@ 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>catch 태그</title>
</head>
<body>
<h1>catch 태그 사용하기</h1>
<c:catch var="ex">
name 파라미터의 값 = <%= request.getParameter("name") %><br>
<%
if(request.getParameter("name").equals("test")){
%>
${param.name}은 test입니다.
<%
}
%>
</c:catch>
<c:if test="${ex!=null}">
예외가 발생했습니다.<br>
${ex}
</c:if>
</body>
</html>
s10_formatNumber.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>formatNumber 태그</title>
</head>
<body>
숫자 : <fmt:formatNumber type="number" value="1000000"/><br>
통화 : <fmt:formatNumber type="currency" value="1000000" currencySymbol="$"/><br>
통화 : <fmt:formatNumber type="currency" value="1000000" currencySymbol="\\"/><br>
퍼센트 : <fmt:formatNumber type="percent" value="0.3"/><br>
패턴 : <fmt:formatNumber value="12.345" pattern="00000.00"/>
</body>
</html>
s11_formatDate.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>formatDate 태그</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>"/>
${now}<br>
<fmt:formatDate value="${now}" type="date" dateStyle="full"/><br>
<fmt:formatDate value="${now}" type="date" dateStyle="short"/><br>
<fmt:formatDate value="${now}" type="time" timeStyle="full"/><br>
<fmt:formatDate value="${now}" type="time" timeStyle="short"/><br>
<fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"/><br>
<fmt:formatDate value="${now}" pattern="yyyy년MM월dd일 a hh:mm:ss"/>
</body>
</html>
s12_functions.jsp
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>functions 라이브러리</title>
</head>
<body>
<c:set var="str1" value=" Functions <태그>를 사용합니다. "/>
<c:set var="str2" value="사용"/>
<c:set var="str3" value="10,20,30-40,50,60,70,80.90,100"/>
문자열의 길이:${fn:length(str1)}<br>
대문자로 변경:${fn:toUpperCase(str1)}<br>
소문자로 변경:${fn:toLowerCase(str1)}<br>
인덱스 3~6전까지 문자열 추출:${fn:substring(str1,3,6)}<br>
문자열에서 원래 문자를 지정한 문자로 대체:${fn:replace(str1," ","-")}<br>
문자열의 앞뒤 공백 제거:${fn:trim(str1)}<br>
지정한 문자의 인덱스 구하기:${fn:indexOf(str1,str2)}<br>
문자열에서 지정한 문자를 구분자로 문자열을 잘라내기:${fn:split(str3,',')}<br>
<c:forEach var="array" items="${fn:split(str3,',')}">
${array}<br>
</c:forEach>
</body>
</html>
'쌍용교육(JAVA) > JSP' 카테고리의 다른 글
쌍용교육 -JSP수업 54일차 EL (0) | 2024.05.07 |
---|---|
(수정필요)쌍용교육 -JSP수업 53일차 employee(실습 추가 및 수정버전) (1) | 2024.05.03 |
쌍용교육 -JSP수업 52일차 employee(실습) (0) | 2024.05.02 |
쌍용교육 -JSP수업 51~52일차 board (0) | 2024.04.30 |
쌍용교육 -JSP수업 50~51일차 member (0) | 2024.04.30 |