2021. 11. 23. 16:32ใSpring
1. EL (Expression Language)
: EL ํํ์์ {} ๋ก ๋ฌถ๊ณ $ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
EL์ ์ ์ฅ ๊ฐ์ฒด์ ์ถ๋ ฅ์ ๋จ์ํ ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋์ด ์ ์ฅ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ <% %> ์ด๋ฐ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- EL ํน์ง
EL์ ๊ธฐ๋ณธ์ ์ผ๋ก 4๊ฐ์ง Scope(page, request, session, application)์ผ๋ก ๊ตฌ์ฑ๋์ด ๊ฐ์ฒด์ ์ ๊ทผํ์ฌ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋ค.
EL์์๋ ํด๋น๊ฐ์ด NULL์ด๊ฑฐ๋ ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ์๋ ์๋ฌด ๋ด์ฉ๋ ํ์ํ์ง์๊ณ ์๋ฌ๋ ๋ฐ์ํ์ง ์๋๋ค.
2. EL๊ณผ ์คํฌ๋ฆฌํ ๋น๊ต
<%= request.getParameter("name") %>
-> ${param.name}
<%
String value = (String) request.getAttribute("greet");
out.println(value);
%>
-> ${greet}
<%
UserVO user = (UserVO) request.getAttribute("user");
out.println(user);
%>
-> ${user}
<%
UserVO user = (UserVO) request.getAttribute("user");
out.println(user.getName());
%>
-> ${user.name}
<%
UserVO user = (UserVO) session.getAttribute("user");
out.println(user.getName());
%>
-> ${sessionScope.user.name}
2. JSTL(Java Standard Tag Library)
: JSTL์ด๋ JSP ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
JSTL ์ญ์ JSP์์ ์คํฌ๋ฆฝํ <%%> ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ฃจํ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์กฐ๊ฑด๋ฌธ์ ์คํํ ์ ์๋๋ก ํด์ค๋ค.
JSTL์ request, response, pageContext, application๊ณผ ๊ฐ์ JSP ๋ด์ฅ ๊ฐ์ฒด์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค.
-> JSTL์ด๋ JSP์์ ์์ฃผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ (๋ฐ๋ณต๊ณผ ์กฐ๊ฑด๋ฌธ, ๋ฐ์ดํฐ ๊ด๋ฆฌ ํฌ๋งท, XML ์กฐ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค)๋ฅผ ๊ตฌํํด ๋์ Custom Tag Library ๋ชจ์์ด๋ค.
3. JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ
1๏ธโฃ ์ฝ์ด core
"http://java.sun.com/jsp/jstl/core"
์ผ๋ฐ ํ๋ก๊ทธ๋จ ์ธ์ด์์ ์ ๊ณตํ๋ ๋ณ์ ์ ์ธ, ์กฐ๊ฑด/์ ์ด/๋ฐ๋ณต๋ฌธ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ฌ์ฉ ์ :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2๏ธโฃ ํฌ๋งทํ formatting
"http://java.sun.com/jsp/jstl/fmt"
์ซ์, ๋ ์ง, ์๊ฐ์ ํฌ๋งทํ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ตญ์ ํ, ๋ค๊ตญ์ด ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
3๏ธโฃ ํจ์ function
"http://java.sun.com/jsp/jstl/functions"
๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ํจ์๋ฅผ ์ ๊ณตํ๋ค.
4๏ธโฃ ๋ฐ์ดํฐ๋ฒ ์ด์ค database
"http://java.sun.com/jsp/jstl/sql"
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. (์ ์์)
5๏ธโฃ xml ์ฒ๋ฆฌ xml
"http://java.sun.com/jsp/jstl/xml"
xml ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ ๋ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
4. JSTL Core ํ๊ทธ
Core ํ๊ทธ๋ jstl ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํ๊ทธ์ด๋ค.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> ๋ก ์ ์ธํด์ผํ๋ค.
1๏ธโฃ ๋ณ์ ์ง์
set : jsp์์ ์ฌ์ฉ๋ ๋ณ์๋ฅผ ์ค์ ํ๋ค.
remove : ์ค์ ํ ๋ณ์๋ฅผ ์ ๊ฑฐํ๋ค.
2๏ธโฃ ํ๋ฆ ์ ์ด
if : ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ด๋ถ ์ฝ๋๋ฅผ ์ํํ๋ค.
choose : ๋ค์ค ์กฐ๊ฑด์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
forEach : ์ปฌ๋ ์ ์ด๋ Map์ ๊ฐ ํญ๋ชฉ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
forTokens : ๊ตฌ๋ถ์๋ก ๋ถ๋ฆฌ๋ ๊ฐ๊ฐ์ ํ ํฐ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
3๏ธโฃ URL ์ฒ๋ฆฌ
import : URL์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์์์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ ํ๋ค.
redirect: ์ง์ ํ ๊ฒฝ๋ก๋ฅผ ๋ฆฌ๋ค์ด๋ ํธ ํ๋ค.
url : URL์ ์ฌ์์ฑํ๋ค.
4๏ธโฃ ๊ธฐํ ํ๊ทธ
catch : exception ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
out: jspWriter์ ๋ด์ฉ์ ์๋ง๊ฒ ์ฒ๋ฆฌํ ํ ์ถ๋ ฅํ๋ค.
5. JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
EL์ ์ง์ํด์ฃผ๊ธฐ ๋๋ฌธ์ JSTL๋ง ์ค์นํด์ฃผ๋ฉด ๋๋ค .
https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api