[ JSTL (JSP Standard Tag Library) ]
์๋ฐ ์ ์ด๋ฌธ์ ํ๊ทธํ ์ํจ๋ค. => ์๋ฐ ์ฝ๋๊ฐ ๋ค ์ฌ๋ผ์ง๋ค.
- ( JSP์ ๊ฒฝ์ฐ HTMLํ๊ทธ์ ๊ฐ์ด ์ฌ์ฉ๋์ด ์ ์ฒด์ ์ธ ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง.)
- ๋ณ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์น ํด์ค์ผํจ
java
// ์กฐ๊ฑด๋ฌธ ์์
if ((Integer) request.getAttribute("age") >= 18) {
request.setAttribute("status", "You are an adult.");
} else {
request.setAttribute("status", "You are not an adult.");
}
jsp
<ul>
<%
List<String> fruits = (List<String>) request.getAttribute("fruits");
for (String fruit : fruits) {
%>
<li><%= fruit %></li>
<%
}
%>
</ul>
jstl
<ul>
<!-- ๋ฐ๋ณต๋ฌธ ์์ -->
<c:forEach var="fruit" items="${fruits}">
<li>${fruit}</li>
</c:forEach>
</ul>
[ JSTL ์ค์นํ๊ธฐ ]
jakarta-taglibs-standard-1.1.2
jstl / standard
* lib ์ ์ถ๊ฐํด์ฃผ๊ธฐ !
(์ถ๊ฐ์ ๋ฒ์ ๋ฌธ์ ๋ก ์์ธ) ํฐ์บฃ 10๋ฒ์ -> ์๋ธ๋ฆฟ์ด ์์นด๋ฅดํ ์๋ธ๋ฆฟ์ผ๋ก ๋ณ๊ฒฝ jstl ๋ ์์นด๋ฅดํ ๋ฒ์ ์ผ๋ก ๋ค์ด
[ JSTL Core Library ]
- Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ถ๋ ฅ, ์ ์ด๋ฌธ, ๋ฐ๋ณต๋ฌธ ๊ฐ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฐ๋์ JSP ํ์ผ ๋ด์ ์ง์์ ํ๊ทธ ์์ฑํ๋ค.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
[ JSTL ์์ ]
//jstl.form.jsp
form action="jstl_if.jsp" method="post"
input ์ด๋ฆ
input ๋์ด
input ํ์ธ
//jstl_if.jsp
1) ์ ์ธ๋ถ์ ํ๊ธฐ
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2)
<c: ์จ์ฝ๋ก ํ๋ฉด ์ฌ๋ฌ ํ๊ทธ๋ค์ด ๋์ค๋๋ฐ ์ธ์์๋
// <c:set> </c:set>
// <c:set />
// ํ๊ทธ ๊ท์น : ๋ซ๋ ๋ฐฉ๋ฒ ๋๊ฐ
<c:set var="a" value="10" /> // a = 10
<c:out value="ํ๊ธธ๋"/>
<c:out value="${a }"/> //el ํ๊ทธ์ ํจ๊ป ์ฌ์ฉ
<c:if test="true">
<p> ๋ฌด์กฐ๊ฑด ์คํ๋๋ ๋ฌธ์ฅ </p>
</c:if>
<c:if test="${a >= 10}">
<p> ๋ฌด์กฐ๊ฑด ์คํ๋๋ ๋ฌธ์ฅ </p>
</c:if>
<c:if test="${param.age >= 20}">
<p> ์ฑ์ธ ์
๋๋ ~</p>
</c:if>
<%
String age = request.getParmeter("age");
int x = Integer.parseInt(age);
%>
<% if (x>=20){ %>
์ฑ์ธ
<% } %>
//----> ์ค์ฌ์ง
<c: if test="${param.name == 'ํ๊ธธ๋' }">
//jsp ๋ฌธ์ฅ์ == ์ฒ๋ฆฌ ๊ฐ๋ฅ
* jstl.form.jsp
form action="jstl_choose.jsp" method="post"
input ์ด๋ฆ
input ๋์ด
input ํ์ธ
1) ํผ ์์ฑ
2) ์ ์ธ๋ฌธ taglic
3) // if ~ else ๊ตฌ๋ฌธ
<c:choose>
<c:when test="${param.name == 'ํ๊ธธ๋' }">
๊ธธ๋์ด </c:when>
<c:when test="${param.name == '์ด์์ ' }">
์์ ์ด </c:when>
<c:otherwise>๋๋ค ์๋</c:otherwise>
<c:choose>
<c:when test="${param.age >= 20}">
์ฑ์ธ
</c:when>
<c:otherwise> ๋ฏธ์ฑ๋
์ </c:otherwise>
</c:choose>
------------------------------
* jstl.foreach.jsp
1) ํผ์์ฑ
2) ์ ์ธ๋ฌธ
3) // foreach ๋ฌธ
<%
int sum = 0;
for (int i = 1; i <= 100; i+=2){
sum +i;
}
%>
<%= sum %>
------------------------------
<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}
//์คํ
์๋ต์ 1
------------------------------
<c:forEach var="i" begin="1" end="9">
3 x ${1} = ${3*i}
<c:forEach>
------------------------------
<c:forEach var="i" begin="1" end="9">
<c:forEach var="j" begin="1" end="9">
${i} x ${j} = ${i*j}
<c:forEach>
<c:forEach>
------------------------------
<%
int[] arr = {1,2,3,4,5}
for (int a : arr){
out.println(a);
}
%>
<c:set var="arr" value="<% new int[] {1,2,3,4,5} %> "/>
// vatStatus for๋ฌธ ์ํ๋ฅผ ์์์๋ ๋ณ์ ~
<c:forEach var"a" items="{$arr}" varStatus="s">
${s}
${s.index} // ์ธ๋ฑ์ค ๊ฐ
${s.count} // ๋ฒํธ ์๋ ค์ค
</c:forEach>
------------------------------
* jstl_fmt.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
// parseNumber, paseDate, formatNumber, formantDate
parse -> ๋ฐ์ดํฐ ํ์
๋ณ๊ฒฝ
format -> ๋ฐ์ดํฐ ์ถ๋ ฅ ํ์์ ๋ฐ๊ฟ
// ์ซ์์ ํํ ํ์์ ๋ฐ๊ฟ
<c:set var="a" value="2024" />
<fmt:formatNumber value="${a}" pattern="0000000" />
<fmt:formatNumber value="${a}" pattern="0000000.00" />
// ๋ ์ง์ ํํ ํ์์ ๋ฐ๊ฟ
<c:set var ="b" value="<%=new Date()%> "/>
<fmt:formatDate value="${b}" pattern="yyyy๋
MM์dd์ผ HH:mm:ss"/>
<fmt:formatDate value="${b}" pattern="yyyy-MM-dd HH:mm:ss"/>
// ๋ฌธ์๋ฅผ ์ซ์๋ก ๋ณํ
<c:set var="c" value="1.100"/>
<fmt:parseNumber value="${c}" pattern="0.000" />
// ๋ฌธ์๋ฅผ ๋ ์ง๋ก ๋ณํ
<c:set var="str" value="2024-06-27"/>
<fmt:parseDate var="result" value="${str}" pattern="yyyy-MM-dd" />
${result } ๋ก ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
<c:set var="e" value="2020-05-03 21:30:22"/>
<c:set var="f" value="<%new Date() %>" />
<fmt:parseDate var="c" value="${e}" pattern="yyyy-MM-dd HH:mm:ss" />
<fmt:formatDate value="${c}" pattern="yyyy๋
MM์dd์ผ HH์mm๋ถss์ด" />
<fmt:formatDate value="${f}" pattern="yyyy๋
MM์dd์ผ HH์mm๋ถss์ด"/>
<!--<c:forEach var="dto" items="${list }">
<c:if test="${dto.departmentId eq param.departmentId}">
<c:set var="name_find" value="${dto.departmentName}"/>
</c:if>
</c:forEach>-->