티스토리 뷰
표현 언어
- 표현 언어는 자바 코드가 들어가는 표현식을 좀 더 편리하게 사용하기 위해 JSP 2.0부터 도입된 데이터 출력 기능이다.
- 현재 JSP 페이지는 스크립트 요소보다는 표현 언어(EL,Expression Language)와 JSTL(JSP Standard Tag Library)을
사용해서 구현한다.
- 자바 코드가 복잡해짐에 따라 JSP 2.0부터는 자바 코드로 출력하는 표현식을 대체하기 위해 표현언어라는 것이
등장했다.
특징
- 기존 표현식보다 편리하게 값을 출력한다.
- 변수와 여러 가지 연산자를 포함할 수 있다.
- JSP의 내장객체에 저장된 속성 및 자바의 빈 속성도 표현 언어에서 출력할 수 있다.
- 표현 언어 자체 내장 객체도 제공된다.
- JSP 페이지 생성 시 기본 설정은 표현 언어를 사용할 수 없다.
- 페이지 디렉티브 태그에서는 반드시 isELIgnored="false" 로 설정해야 한다.
형식
${표현식 또는 값}
사용 가능 자료형
- 불, 정수, 실수, 문자열, 널
연산자
- 산술 : +, -, *, / 또는 div, % 또는 mod
- 비교 : == 또는 eq, != 또는 ne, < 또는 lt, > 또는 gt <= 또는gt, >= 또는 ge
- 논리 : && 또는 and, || 또는 or, ! 또는 not
- empty : empty<값> - <값>이 null 이거나빈 문자열이면 true를 반환
표현 언어 테스트
- JSP에서 표현 언어를 사용해 본다.
* elTest1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현 언어에서 사용되는 데이터들</title>
</head>
<body>
<h1>표현언어로 여러 가지 데이터 출력하기</h1>
<h1>
\${100 } : ${100 }<br>
\${"안녕하세요" } : ${"안녕하세요"}<br>
\${10+1 } : ${10+1 }<br>
\${"10"+1 } : ${"10" + 1}<br>
</h1>
</body>
</html>
- 문자열과 숫자를 더하면 자동으로 숫자로 변환해 합을 구하고, null과 숫자를 더하면 null은 0으로 인식한다.
산술 연산
* elTest2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 산술연산자</title>
</head>
<body>
<h1>여러 가지 산술연산자</h1>
<h1>\${10+10 } : ${10+10}</h1>
<h1>\${20-10 } : ${20-10}</h1>
<h1>\${10*10 } : ${10 * 10 }</h1>
<h1>\${100/9 } : ${100 / 9 }</h1>
<h1>\${100 div 9 } : ${100 div 9 }</h1>
<h1>\${100%9 } : ${100 % 9 }</h1>
<h1>\${100 mod 9 } : ${100 mod 9 }</h1>
</body>
</html>
비교 연산
- 값이 같은지 비교할 때는 == 또는 eq 연산자를 사용한다.
- 값이 같이 않은지 비교할 때는 != 또는 ne 연산자를 사용한다.
- 대소 비교 시 >와 < 연산자 그리고 gt와 lt도 각각 연산자로 사용할 수 있다.
- 대소 및 동등 비교를 동시에 할 때는 >=와 <= 연산자 그리고 ge와 le도 각각 연산자로 사용할 수 있다.
* elTest3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비교 연산자</title>
</head>
<body>
<h2>여러 가지 비교 연산자</h2>
<h3>
\${10 == 10 } : ${10 == 10 }<br>
\${10 eq 10 } : ${10 eq 10 }<br>
\${"hello" eq "hello" } : ${"hello" eq "hello" }<br><br>
\${20 != 10 } : ${20 != 10 }<br>
\${20 ne 10 } : ${20 ne 10 }<br><br>
\${"hello" != "apple" } : ${"hello" != "apple" }<br>
\${"hello" ne "apple" } : ${"hello" ne "apple" }<br><br>
\${10 < 10 } : ${10 < 10 }<br>
\${10 lt 10 } : ${10 lt 10 }<br><br>
\${100 > 10 } : ${100 > 10 }<br>
\${100 gt 10 } : ${100 gt 10 }<br><br>
\${100 <= 10 } : ${100 <= 10 }<br>
\${100 le 10 } : ${100 le 10 }<br><br>
\${100 >=10 } : ${100 >= 10 }<br>
\${100 ge 10 } : ${100 ge 10 }
</h3>
</body>
</html>
논리 연산
- && 연산자나 and 연산자는 논리곱 연산을 한다.
- || 연산자나 or 연산자는 논리합 연산을 한다.
- ! 연산자나 not 연산자는 반대의 결과를 출력한다.
* elTest4.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>논리 연산자</title>
</head>
<body>
<h2>여러 가지 논리연산자</h2>
<h2>
\${(10==10) && (20==20) } : ${(10==10) && (20==20) }<br>
\${(10==10) and (20==20) } : ${(10==10) and (20==20) }<br>
\${(10==10) || (20!=30) } : ${(10==10) || (20!=30) }<br>
\${(10!=10) or (20!=20) } : ${(10!=10) or (20!=20) }<br><br>
\${!(20==10) } :${!(20==10) }<br>
\${not (20==10) } : ${not (20==10) }<br><br>
\${!(20!=10) } : ${!(20!=10) }<br>
\${not(20!=10) } : ${not(20!=10) }
</h2>
</body>
</html>
empty 연산
- empty 연산자는 자바 빈의 속성이 값으로 설정되었는지 또는 List, Map 같은 저장 객체에 값(객체)이 존재하는지를
판단하는 연산자이다.
* elTest5.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<jsp:useBean id="m1" class="servlet.MemberBean" scope="page" />
<jsp:setProperty name="m1" property="name" value="이순신" />
<jsp:useBean id="m2" class="java.util.ArrayList" scope="page" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현 언어의여러 가지 연산자들</title>
</head>
<body>
<h1>empty 연산자</h1>
<h2>
\${empty m1 } : ${empty m1 }<br>
\${not empty m1 } : ${not empty m1 }<br><br>
\${empty m2 } : ${empty m2 }<br>
\${not empty m2 } : ${not empty m2 }<br><br>
\${empty "hello" } : ${empty "hello" }<br> <%-- 문자열에 대해 false를 반환한다. --%>
\${empty null } : ${empty null }<br> <%-- null은 true를 반환한다. --%>
\${empty "" } : ${empty "" } <%-- 빈 문자열은 true를 반환한다. --%>
</h2>
</body>
</html>
'JSP' 카테고리의 다른 글
[JSP]표현 언어 바인딩 속성 출력 (0) | 2024.08.15 |
---|---|
[JSP]표현 언어 내장 객체 (0) | 2024.08.15 |
[JSP]액션태그 (0) | 2024.08.14 |
[JSP]Welcome 파일 지정 (0) | 2024.08.14 |
[JSP]예외 처리 (0) | 2024.08.14 |
- Total
- Today
- Yesterday
- httpServletRequest
- 스프링
- 네트워크
- Binding
- a 태그
- CSS
- Session
- el
- HTML
- html css
- JSP
- 세션
- Network
- 미들웨어
- 서브넷팅
- 리액트
- FMT
- script element
- javaserverpage
- Spring MVC
- CSS 속성
- Redux
- Java Server Page
- 내장객체
- react
- Servlet
- 제이쿼리
- 서블릿
- nodejs
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |