taglib
. 액션태그 : JSP에서 제공한 태그 <jsp:forward> 등..
. 사용자태그 : 사용자들이 만들어쓰는 태그
. 표준 사용자태그(JSTL) : 자주 사용하는 태그들을 모아서 사용할 수 있도록 한 것
. 기능별 분류된 태그 기능
<%@ taglib prefix="c" url="http://java.sun.com/jsp/jstl/core" %>
코어 : 변수, 흐름제어, url 처리
<%@ taglib prefix="fn" url="http://java.sun.com/jsp/jstl/fn" %>
함수 : 컬렉션 처리, String 처리
. core 라이브러리 태그
set : 변수설정
remove : 변수제거
if : 조건처리
choose : 다중조건
forEach : 반복문처리
import :
redirect: 이동
url : URL을 재작성
catch : 예외처리
out : 출력
jsp1.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>taglib</title>
</head>
<body>
<c:set var="name" value="변수의 값" scope="request"></c:set><br>
<c:set var="age" scope="request">변수의 값</c:set>
</body>
</html>
Member.java
package bord;
public class Member {
String name;
String firstName;
String secondName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getSecondName() {
return secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
}
jsp2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러방법으로 출력하기</title>
</head>
<body>
<c:set var="name" value="서대길" /> <!-- name = "서대길" -->
<c:out value="김광희" />
<hr>
<%
Member m = new Member();
m.setName("김광희");
m.setFirstName("김");
m.setSecondName("광희");
%>
<%=m.getName() %><br>
<%=m.getFirstName() %><br>
<%=m.getSecondName() %><br>
<hr>
<!-- EL로 출력 (값설정 > 출력)-->
${name }
<!-- 액션태그로 출력 jsp:useBean (값설정 > 출력)-->
<hr>
<!-- JSTL로 출력 -->
<c:set var="name1" value="<%=m.getFirstName() %>" scope="request"/>
<c:set var="name2" value="서대길" />
<c:set var="name3">서대길</c:set>
<c:set var="name4" value="<%=m.getSecondName() %>"/>
<c:set var="name5">${m.getFirstName() }</c:set>
<c:set var="name6" value="${m.getSecondName() }" />
이름1 : ${name1 }<br>
이름2 : ${name2 }<br>
이름3 : ${name3 }<br>
이름4 : ${name4 }<br>
이름5 : ${name5 }<br> <!-- 읽지못함 -->
이름6 : ${name6 }<br> <!-- 읽지못함 -->
</body>
</html>
jsp3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import = "java.util.HashMap" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>출력</title>
</head>
<body>
<%
Member member = new Member();
request.setAttribute("m", member);
%>
<c:set target="<%=member %>" property="name" value="서대길" /> <!-- member.setName(서대길) -->
출력1 : <%=member.getName() %><br>
출력2 : <c:out value="<%=member.getName() %>"/><br>
출력3 : ${m.getName() }
<hr>
<c:set var="m" value="<%=member %>" />
<c:set target="${m}" property="name" value="김광희"/>
m의 name값 : ${m.name }<br>
<!-- target을 EL로 지정 > 출력도 EL로 -->
<hr>
<%
HashMap<String,String> prop = new HashMap<>();
%>
<c:set target="<%=prop %>" property="host" value="localhost" />
prop속의 host 값 : <%=prop.get("host") %><br>
</body>
</html>
jsp4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
Member member = new Member();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>best member</title>
</head>
<body>
<c:set var="mem" value="<%=member %>" />
<c:set target="${mem }" property="name" value="서대길" />
<c:set var="bestMember" value="#{mem.name }" />
<h3>베스트 회원 : ${bestMember }</h3>
<c:set target="${mem }" property="name" value="김광희" />
<h3>베스트 회원 : ${bestMember }</h3>
</body>
</html>
jsp5.jsp
- c remove시 scope 잘 설정하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bord.Member" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>값 삭제</title>
</head>
<body>
<c:set var="name" value="서대길" scope="request"/>
<c:set var="name" value="김광희" scope="session"/>
request값 : <%=request.getAttribute("name") %><br>
session값 : <%=session.getAttribute("name") %><br>
<c:remove var="name" scope="request"/>
<hr>
request값 : <%=request.getAttribute("name") %><br>
session값 : <%=session.getAttribute("name") %><br>
</body>
</html>
c:if
. 자바의 if와 같은 용도
. if-else문은 표현할 수 없다.
. 조건은 표현식이나 표현언어로 작성
jsp6.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>c:if test</title>
</head>
<body>
<form action="">
이름 : <input type="text" name="name"><br>
나이 : <input type="text" name="age"><br><br>
<input type="submit" value="전송">
</form>
<br>
<c:if test="true">
이러면 무조건 실행됩니당<br>
</c:if>
<c:if test="${param.name == '서대길'}">
파라미터의 값이 ${param.name }입니다.<br>
</c:if>
<c:if test="${param.age > 20}">
파라미터의 age값이 20살 이상입니다.<br>
</c:if>
</body>
</html>
jsp7.jsp
c:when / otherwise
<%@ 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>c:when/otherwise</title>
</head>
<body>
<form action="">
이름 : <input type="text" name="name"><br>
나이 : <input type="text" name="age"><br><br>
<input type="submit" value="전송">
</form>
<br>
<c:choose>
<c:when test="${param.name == '서대길' }">
당신은 서대길 입니당♡ <br>
</c:when>
<c:when test="${param.age == '23' }">
당신의 나이는 23살입니당 <br>
</c:when>
<c:otherwise>
당신은 누구신가여
</c:otherwise>
</c:choose>
</body>
</html>
jsp8.jsp
c:forEach
<%@ 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>c:forEach</title>
</head>
<body>
<c:forEach var="i" begin="1" end="100" step="1">
<c:set var="sum" value="${sum+i }" />
</c:forEach>
1~100까지의 합 : ${sum } 입니당
</body>
</html>
${status.current} : 현재 참조하고 있는 값
${status.count} : 반복한 횟수
${status.index} : 현재 참조하고 있는 인덱스
jsp9.jsp
array 활용
<!--
${status.current} : 현재 참조하고 있는 값
${status.count} : 반복한 횟수
${status.index} : 현재 참조하고 있는 인덱스
-->
<%@ 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>array활용</title>
</head>
<body>
<c:set var="arr" value="<%= new int[]{1,2,3,4,5,6,7,8,9,10} %>" />
<table border="1">
<tr><th>배열값</th><th>반복횟수</th><th>인덱스</th></tr>
<c:forEach var="i" items="${arr }" begin="2" end="4" varStatus="status">
<tr><td>${status.current }</td><td>${status.count }</td><td>${status.index }</td></tr>
</c:forEach>
<!-- 오류 수정하긔 -->
</table>
</body>
</html>
jsp10.jsp
HashMap
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.HashMap, java.util.Date" %>
<%
HashMap<String, Object> map = new HashMap<>();
map.put("name","서대길");
map.put("today", new Date());
map.put("phoine","010-2000-0225");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HashMap활용</title>
</head>
<body>
<c:set var="map" value="<%=map %>"/> <!-- HashMap map = map; -->
<c:forEach var="m" items="${map }"> <!-- for(m:map) -->
${m.key }=${m.value } <br>
</c:forEach>
</body>
</html>
jsp11.jsp
c:import
<%@ 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>c:import</title>
</head>
<body>
<div>
<c:import url="https://www.naver.com">
</c:import>
</div>
<hr>
<div>
<c:import url="test.jsp">
<c:param name="name" value="서대길"/>
<c:param name="address" value="seoul" />
</c:import>
</div>
</body>
</html>
test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<h1>귀여운 설탕과자 서대길♥</h1>
<%
String name = request.getParameter("name");
String address =request.getParameter("address");
out.print(name+"<br>");
out.print(address+"<br>");
%>
</body>
</html>
'IT 공부 > JSP' 카테고리의 다른 글
Database 연동2 (0) | 2022.08.04 |
---|---|
Database 연동1 (0) | 2022.08.03 |
EL (표현언어) (0) | 2022.08.02 |
Session (0) | 2022.08.02 |
Cookies (0) | 2022.08.01 |