JSP 표현식 언어(EL)를 사용하면 JavaBeans에 저장된 데이터에 매우 간단하게 액세스할 수 있습니다. JSP EL은 산술식과 논리식을 모두 생성하는 데 사용할 수 있습니다. 정수, 부동 소수점 숫자, 문자열, 상수 true, false 및 null을 JSP EL 표현식에 사용할 수 있습니다.
일반적으로 JSP 태그에 속성 값을 지정해야 하는 경우 간단히 문자열을 사용합니다.
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL을 사용하면 속성 값을 나타내는 표현식을 지정할 수 있습니다. 간단한 표현식 구문은 다음과 같습니다.
${expr}
그 중,
특급 는 표현을 말합니다. JSP EL의 일반적인 연산자는 다음과 같습니다.
"."그리고
"[]". 이 두 연산자를 사용하면 다양한 액세스에 액세스할 수 있습니다.
자바빈즈 속성.
예를 들어, 위의
<jsp:세트속성>다음과 같이 표현식 언어를 사용하여 태그를 다시 작성할 수 있습니다.
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>
JSP 컴파일러가 "
${}"형식을 지정한 후 표현식을 평가하고 표현식 값에 대한 대체 값을 생성하는 코드를 생성합니다.
라벨의 템플릿 텍스트에 표현 언어를 사용할 수도 있습니다. 예를 들어
<jsp:텍스트>태그는 단순히 본문의 텍스트를 JSP 출력에 삽입합니다.
<jsp:text><h1>안녕하세요 JSP!</h1></jsp:text>
지금, 안으로
<jsp:텍스트>태그 본문에 다음과 같은 표현식을 사용하세요.
<jsp:text>상자 둘레: ${2*box.width + 2*box.height}</jsp:text>
괄호를 사용하여 EL 표현식의 하위 표현식을 구성할 수 있습니다. 예를 들어
${(1 + 2) * 3}9와 같지만
${1 + (2 * 3)}7과 같습니다.
EL 표현식의 평가를 비활성화하려면 다음을 사용하십시오.
페이지지침은
isELIgnored속성 값은 다음과 같이 설정됩니다.
진실:
<%@ 페이지 isELIgnored ="true|false" %>
이렇게 하면 EL 표현식이 무시됩니다. 로 설정한 경우
거짓, 컨테이너는 EL 표현식을 평가합니다.
EL 표현식은 Java에서 제공하는 대부분의 산술 및 논리 연산자를 지원합니다.
연산자 | 설명하다 |
---|---|
. | 방문하다콩속성 또는 맵 항목 |
[] | 배열 또는 연결 목록의 요소에 액세스 |
( ) | 하위 표현식을 구성하여 우선순위 변경 |
+ | 추가하다 |
- | 마이너스 또는 마이너스 |
* | 가져가다 |
/ 또는 div | 제거하다 |
% 또는 모드 | 곰팡이를 가져 가라. |
== 또는 eq | 동등성 테스트 |
!= 또는 ne | 같지 않은지 테스트 |
< 또는 lt | 미만인지 테스트 |
> 또는 gt | 보다 큰지 테스트 |
<= 또는 르 | 다음보다 작거나 같은지 테스트합니다. |
>= 오르게 | 다음보다 크거나 같은지 테스트합니다. |
&& 또는 및 | 논리 AND 테스트 |
|| | 논리 OR 테스트 |
! | 테스트 부정 |
비어 있는 | Null 값 테스트 |
JSP EL을 사용하면 표현식에 함수를 사용할 수 있습니다. 이러한 함수는 사용자 정의 태그 라이브러리에 정의되어야 합니다. 함수를 사용하는 구문은 다음과 같습니다.
${ns:func(param1, param2, ...)}
ns는 네임스페이스를 나타냅니다.
기능함수 이름을 나타냅니다.
매개변수1첫 번째 매개변수를 참조합니다.
매개변수2는 두 번째 매개변수를 참조하는 식입니다. 예를 들어, 다음과 같은 기능이 있습니다.
fn: 길이JSTL 라이브러리에 정의된 는 다음과 같이 문자열 길이를 가져오는 데 사용할 수 있습니다.
${fn:length("내 길이를 알아보세요")}
태그 라이브러리의 기능을 사용하려면 서버에 해당 라이브러리를 설치한 다음 다음을 사용해야 합니다.
<태그립>태그에는 JSP 파일에 이러한 라이브러리가 포함됩니다.
JSP EL은 다음 표에 나열된 암시적 객체를 지원합니다.
숨겨진 물건 | 설명하다 |
---|---|
페이지 범위 | 페이지 범위 |
요청 범위 | 요청 범위 |
세션 범위 | 세션 범위 |
응용 범위 | 적용 범위 |
매개변수 | 요청 객체의 매개변수, 문자열 |
param값 | 요청 객체의 매개변수, 문자열 수집 |
헤더 | HTTP 헤더, 문자열 |
헤더값 | HTTP 헤더, 문자열 수집 |
initParam | 컨텍스트 초기화 매개변수 |
쿠키 | 쿠키 값 |
페이지컨텍스트 | 현재 페이지의 pageContext |
변수와 마찬가지로 표현식에서 이러한 개체를 사용할 수 있습니다. 다음으로 이 개념을 더 잘 이해하기 위해 몇 가지 예를 제시하겠습니다.
페이지컨텍스트객체가 JSP에 있습니다.
페이지컨텍스트객체 참조. 통과하다
페이지컨텍스트액세스할 수 있는 개체
요구물체. 예를 들어 다음을 방문하세요.
요구객체가 전달한 쿼리 문자열은 다음과 같습니다.
${pageContext.request.queryString}
페이지 범위,
요청 범위,
세션 범위,
응용 범위변수는 다양한 범위 수준에 저장된 변수에 액세스하는 데 사용됩니다.
예를 들어, 명시적으로 액세스해야 하는 경우
응용 범위계층
상자변수는 다음과 같이 액세스할 수 있습니다.
applicationScope.box.
매개변수그리고
param값다음을 사용하여 매개변수 값에 액세스하는 데 사용되는 개체
request.get매개변수방법 및
request.getParameterValues방법.
예를 들어,
주문하다 매개변수의 경우 다음과 같은 표현식을 사용할 수 있습니다.
${param.order}, 또는
${param["주문"]}.
다음 예에서는 요청에 액세스하는 방법을 보여줍니다.
사용자 이름매개변수:
<%@ page import="java.io.*,java.util.*" %><% String title = "요청 매개변수 액세스 중" %><html><head><title><% out.print(title ); %></title></head><body><center><h1><% out.print(title) %></h1></center><div align="center"><p>${param["username"]}</p></div></body></html>
param 객체는 단일 문자열을 반환하지만
param값Object는 문자열 배열을 반환합니다.
헤더그리고
헤더값개체는 다음을 사용하여 정보 헤더에 액세스하는 데 사용됩니다.
요청.get헤더방법 및
request.getHeaders방법.
예를 들어,
사용자 에이전트 정보 헤더에는 다음과 같은 표현식을 사용할 수 있습니다.
${header.user-agent}, 또는
${header["user-agent"]}.
다음 예에서는 액세스 방법을 보여줍니다.
사용자 에이전트정보 헤더:
<%@ page import="java.io.*,java.util.*" %><% String title = "사용자 에이전트 예" %><html><head><title><% out.print(title) ); %></title></head><body><center><h1><% out.print(title) %></h1></center><div align="center"><p>${header["user-agent"]}</p></div></body></html>
실행 결과는 다음과 같습니다.
header 개체는 단일 값을 반환하는 반면 headerValues는 문자열 배열을 반환합니다.