WEB_EL
๐ WEB
๐ EL ( Expression Language )
EL ( Expression Language ) ์ด๋ ๋ฌด์์ธ๊ฐ?
- EL ์ ํํ์ ์ํ ์ธ์ด๋ก JSP ์คํฌ๋ฆฝํธ์ ํํ์์ ๋์ ํ์ฌ ์์ฑ ๊ฐ์ ์ฝ๊ฒ ์ถ๋ ฅํ๋๋ก ๊ณ ์๋ Language ์ด๋ค.
- ์ฆ ํํ์ (<%= %>) ๋ฅผ ๋์ฒดํ ์ ์๋ค.
- EL ํํ์์์ ๋ํธ ์ฐ์ฐ์ ์ผ์ชฝ์ ๋ฐ๋์ java.util.Map ๊ฐ์ฒด ๋๋ Java Bean ๊ฐ์ฒด์ฌ์ผ ํ๋ค.
- EL ํํ์์์ ๋ํธ ์ฐ์ฐ์ ์ค๋ฅธ์ชฝ์ ๋ฐ๋์ ๋งต์ ํค์ด๊ฑฐ๋ Bean ํ๋กํผํฐ์ฌ์ผ ํ๋ค.
- EL์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ
- JSP์ ๋ค๊ฐ์ง ๊ธฐ๋ณธ ๊ฐ์ฒด๊ฐ ์ ๊ณตํ๋ ์์ญ์ ์์ฑ ์ฌ์ฉ
- ์๋ฐ ํด๋์ค ๋ฉ์๋ ํธ์ถ ๊ธฐ๋ฅ
- ํํ ์ธ์ด๋ง์ ๊ธฐ๋ณธ ๊ฐ์ฒด ์ ๊ณต
- ์์น, ๊ด๊ณ, ๋ ผ๋ฆฌ ์ฐ์ฐ ์ ๊ณต
EL ๋ฌธ๋ฒ
1. ์คํฌ๋ฆฝ ํธ๋ฆฟ
<%= ((com.model.MemberDto) request.getAttribute("userinfo")).getZipDto().getAddress()>
-> EL
${userinfo.zipDto.address}
2. Map ์ฌ์ฉ
${Map. Map์ ํค}
3. Java Bean ์ฌ์ฉ
${Java Bean, Bean ํ๋กํผํฐ}
- [] ์ฐ์ฐ์
- EL ์๋ Dot ํ๊ธฐ๋ฒ ์ธ์ [] ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ๊ฐ์ ์ ๊ทผํ ์ ์๋ค.
- [] ์ฐ์ฐ์ ์์ ๊ฐ์ด ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ, ์ด๊ฒ์ ๋งต์ ํค๊ฐ ๋ ์๋ ์๊ณ , Bean ํ๋กํผํฐ๋ ๋ฆฌ์คํธ ๋ฐ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ๋ ์ ์๋ค.
- ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ์ธ ๊ฒฝ์ฐ ๋ฌธ์๋ก ๋ ์ธ๋ฑ์ค ๊ฐ์ ์ซ์๋ก ๋ณ๊ฒฝํ์ฌ ์ฒ๋ฆฌํ๋ค.
1. [] ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ๊ฐ์ฒด ํ๋กํผํฐ ์ ๊ทผ
${userinfo["name"]}
2. Dot ํ๊ธฐ๋ฒ์ ์ด์ฉํ ๊ฐ์ฒด ํ๋กํผํฐ ์ ๊ทผ
${userinfo.name}
3. ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ ์ ๊ทผ
- Servlet
String[] names = {"์ด์์ ", "ํ๊ธธ๋"};
request.setAttribute("userNames", names);
- JSP
${userNames[0]} -> ์ด์์ ์ถ๋ ฅ
${userNames["1"]} -> ๋ฌธ์์ด์ธ ์ธ๋ฑ์ค ๊ฐ์ด ์ซ์๋ก ๋ฐ๋์ด userNames[1]์ ๊ฒฐ๊ณผ์ธ ํ๊ธธ๋ ์ถ๋ ฅ
EL ๋ด์ฅ๊ฐ์ฒด
category | identifier | Type | description |
JSP | pageContext | Java Bean | ํ์ฌ ํ์ด์ง์ ํ๋ก์ธ์ฑ๊ณผ ์์ํ๋ PageContext instance |
๋ฒ์ ( scope ) |
pageScope | Map | page Scope์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ถ์ถ |
requestScope | Map | request Scope์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ถ์ถ | |
sessionScope | Map | session Scope์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ถ์ถ | |
applicationScope | Map | application Scope์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ถ์ถ | |
์์ฒญ ๋งค๊ฐ ๋ณ์ | param | Map | ServletRequest.getParameter(String)์ ํตํด ์์ฒญ ์ ๋ณด๋ฅผ ์ถ์ถ |
paramValues | Map | ServletRequest.getParameterValues(String)์ ํตํด ์์ฒญ ์ ๋ณด๋ฅผ ์ถ์ถ | |
์์ฒญ ํค๋ | header | Map | HttpServletRequest.getHeader(String)์ ํตํด ํค๋ ์ ๋ณด๋ฅผ ์ถ์ถ |
headerValues | Map | HttpServletRequest.getHeaders(String)์ ํตํด ํค๋ ์ ๋ณด๋ฅผ ์ถ์ถ | |
์ฟ ํค | cookie | Map | HttpServletRequest.getCookies()๋ฅผ ํตํด ์ฟ ํค ์ ๋ณด๋ฅผ ์ถ์ถ |
์ด๊ธฐํ ๋งค๊ฐ๋ณ์ | initParam | Map | ServletContext.getInitParameter(String)๋ฅผ ํตํด ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถ |
EL ์ฌ์ฉ
- pageContext๋ฅผ ์ ์ธํ ๋ชจ๋ EL ๋ด์ฅ ๊ฐ์ฒด๋ Map ์ด๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก key ์ value ์ ์์ผ๋ก ๊ฐ์ ์ ์ฅํ๊ณ ์๋ค.
- ๊ธฐ๋ณธ ๋ฌธ๋ฒ
${expr}
EL ์์ ๊ฐ์ฒด ์ ๊ทผ
- request.setAttribute(โuserinfoโ, โํ๊ธธ๋โ);
- ${requestScope.userinfo}
- ${pageContext.request.userinfo}, ${userinfo} -> property ์ด๋ฆ๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋์ผ๋ก pageScope > requestScope > sessionScope > applicationScope ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ฐพ๋๋ค.
- url>name=ํ๊ธธ๋&friut=์ฌ๊ณผ&fruit=๋ฐ๋๋
- ${param.name}
- ${paramValues.fruit[0]}.${paramValues.fruit[1]}
- ${cookie.id.value}
- Cookie๊ฐ null์ด๋ฉด null return
- null ์ด ์๋๋ผ๋ฉด id ๊ฒ์ฌ ํ null ์ด๋ผ๋ฉด null return
- null ์ด ์๋๋ผ๋ฉด value ๊ฐ ๊ฒ์ฌ
EL์ ๊ฐ์ด null ์ด๋ผ๋ null์ ์ถ๋ ฅํ์ง ์๋๋ค ( ๊ณต๋ฐฑ )
EL Operation ( ์ฐ์ฐ์ )
๋๋ถ๋ถ ์๋ฐ์ ๋์ผ
description | |
์ฐ์ | +, -, *, / ( div ), % ( mod ) |
๊ด๊ณํ | == ( eq ), != ( ne ), < ( lt ), > ( gt ), <= ( le ), >= ( ge ) |
3ํญ ์ฐ์ฐ | ์กฐ๊ฑด ? ๊ฐ1 : ๊ฐ2 |
๋ ผ๋ฆฌ | && ( and ), || ( or ), ! ( not ) |
ํ๋น์ฑ๊ฒ์ฌ | empty |
- empty ์ฐ์ฐ์์์ true๋ฅผ return ํ๋ ๊ฒฝ์ฐย ยป ${empty var}
- ๊ฐ์ด null์ด๋ฉด true
- ๊ฐ์ด ๋น ๋ฌธ์์ด(โโ) ์ด๋ฉด true
- ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด([]) ์ด๋ฉด true
- ๋น Map ๊ฐ์ฒด๋ true
- ๋น Collection ๊ฐ์ฒด์ด๋ฉด true
EL ์์ ๊ฐ์ฒด method ํธ์ถ
<%
List<MemberDto> list = dao.getMembers();
request.setAttribute("users", list);
%>
- ํ์ ์ : ${requestScope.users.size()}, ${users.size()}
${users.size} == <%= request.getAttribute("users").getSize() %>
EL ๋ง๋ฌด๋ฆฌ
EL ์ ๋ํด ๊ณต๋ถํด ๋ณด์๋ค.
<%= %> ์์ java ์ฝ๋๋ก ์ฐ๋ ๊ฒ์ ${} ์์๋ค๊ฐ ๊ฐ๋จํ๊ฒ ํํํ ์ ์๊ฒ ๋์๋ค.
JSP ํํ์์ ๊ฐ๋จํ๊ฒ ํํํ ์ ์๋ ์ธ์ด๋ก ์ ๊ทผ์ ์ฉ์ดํ ๊ฒ ๊ฐ๋ค.