[JSP]EL 태그 사용하기 (Attribute, Parameter값 편하게 사용하기)
- JSP
- 2021. 7. 29.
JSP
EL (Expression Language)
JSP에서 EL을 통해 Attribute, Parameter에 실려있는 값들을 편리하게 사용할 수 있다.
Attribute는 page,request,session,application의 스코프로 범위별로 값을 저장할 수 있다.
Attribute EL
setAttribute("key", "value")의 형태로 값을 설정 했을 때
jsp페이지에서 ${key} 를 작성하면 웹 페이지에서 value가 출력된다.
단 4가지의 스코프에 동일한 이름으로 attribute가 존재한다면 앞에 각 영역의 이름을 붙이고 사용해야 한다
(안 붙이면 가장 작은 영역에 있는 scope의 attribute가 선택된다)
각각의 scope에 따른 key값 출력 예시
page - ${key}
request - ${requestScope.key}
session - ${sessionScope.key}
application - ${applicationScope.key}
<%
pageContext.setAttribute("most","티모");
request.setAttribute("most","가렌");
session.setAttribute("most","다리우스");
application.setAttribute("most","야스오");
%>
그냥 출력 (가장 좁은 범위의): ${most } <!--티모-->
request 출력 : ${requestScope.most } <!--가렌-->
session 출력 : ${sessionScope.most } <!--다리우스-->
application 출력 : ${applicationScope.most } <!--야스오-->
위와 같이 most라는 키에 각 스코프 별로 다른 값이 존재한다고 했을 때 원하는 영역의 값을 뽑기 위해서는 앞에 원하는 scope를 붙여주어야 한다.
Parameter EL
Parameter로 받은 값을 EL태그로 출력할 때는 ${param.name}과 같은 형식으로 출력한다.
출력 예제
<input type="text" name="name">
<input type="text" name="age">
<input type="text" name="hobby">
위와 같이 파라미터로 넘어온 값들을 꺼낼 때 param.key로 꺼낼 수 있다.
${param.name}, ${param.age}, ${param.hobby}
만약 여러 가지의 값을 같은 name으로 받는다면 (checkbox 등) paramValues를 이용하여 배열의 인덱스에 접근하는 방식으로 사용할 수 있다.
${paramValues.hobby[0]}, ${paramValues.hobby[1]}, ${paramValues.hobby[2]}
EL의 리터럴 종류와 예시
boolean | ${true}, ${false} |
정수 | ${123}, ${123+456}, ${5*30} |
실수 | ${123.123 * 3} |
문자열(따옴표써야함) | ${'hello,world'} |
EL의 산술 연산자
표현식 | 결과 |
${11 + 7} | 18 |
${11 - 7} | 4 |
${11 * 7} | 77 |
${11 / 7} | 1 |
${11 % 7} | 4 |
${11 mod 7} | 4 |
EL의 논리 연산자
표현식 | 결과 |
${true and false} | false |
${true && false} | false |
${true or false} | true |
${true || false} | true |
${not true} | false |
${!true} | false |
EL의 empty연산자
값이 null이거나 "" 일 때 (문자열, 배열, 객체 등 크기가 0 일 때) true를 반환한다.
<%
pageContext.setAttribute("value1", null);
pageContext.setAttribute("value2", "");
pageContext.setAttribute("value3", "티모");
%>
${empty value1 }, ${empty value2 }, ${empty value3}
<!-- true, true, false -->
값이 없는 데이터의 비교 연산이 자바에서 처리하는 것보다 비교적 편하다.
'JSP' 카테고리의 다른 글
[JSP] JSTL 개념과 사용 방법 (0) | 2021.07.30 |
---|---|
[JSP] 한글 인코딩 방식 GET, POST (0) | 2021.07.27 |
[JSP] 특정 페이지로 이동 (forward, redirect) (0) | 2021.07.23 |
[JSP] HttpServletRequest 객체 (getParameter) (0) | 2021.07.22 |
[JSP] 스크립트 ( 선언문,스크립트릿,표현식) (0) | 2021.07.21 |