Latest web development tutorials

JSP 표현 언어

JSP 표현 언어 (EL) 그래서 자바 빈즈에 저장된 데이터에 액세스은 매우 간단해진다. JSP EL 역시 같은 논리식을 생성하는데 사용될 수있는 연산 식을 만들 수있다. JSP EL 표현식은 정수, 부동 소수점 숫자, 문자열, 사실 상수, 거짓을 사용할 수 있습니다에서 널 (null)이있다.


간단한 구문

일반적으로, 당신은 JSP 태그, 단순히 문자열을 사용하면 속성 값을 지정해야하는 경우에 :

<jsp:setProperty name="box" property="perimeter" value="100"/>

JSP EL 표현은 속성 값을 지정할 수 있습니다. 다음과 같이 간단한 식의 구문은 다음과 같습니다

${expr}

에있어서, EXPR는 표현을 의미한다. JSP로 EL 일반 연산자 "[]." ""입니다. 그리고 이 두 연산자를 사용하면 객체를 통해 임베디드 JSP 자바 빈즈 속성의 다양한 액세스 할 수 있습니다.

예를 들어, 상기 <JSP : setProperty는> 태그는 다음과 같이 표현 언어를 사용하여 재 기입 할 수있다 :

<jsp:setProperty name="box" property="perimeter" 
                 value="${2*box.width+2*box.height}"/>

JSP로 컴파일러가 볼 때 "$ {}를"포맷 후에는 표현식을 평가하는 코드를 생성하고, 속성의 식의 값을 대체하는 대체를 생성한다.

또한 템플릿 텍스트 탭에서 표현 언어를 사용할 수 있습니다. 예를 들어, <JSP : 텍스트> 태그는 단순히 본문 JSP 출력에 삽입 할 :

<jsp:text>
<h1>Hello JSP!</h1>
</jsp:text>

지금의이 같은 신체의 표현 <JSP로 텍스트> 태그를 사용하여 :

<jsp:text>
Box Perimeter is: ${2*box.width + 2*box.height}
</jsp:text>

괄호 EL 표현식은 자식 표현을 구성 할 수있다. 예를 들어, {3에 해당 9 * (1 + 2)} $,하지만 들어 $ {1 + (2 * 3)} = 7.

EL 식의 평가를 비활성화하려면, 당신은 true로 페이지 지시문 isELIgnored 속성을 사용합니다 :

<%@ page isELIgnored ="true|false" %>

따라서, EL 표현식은 무시됩니다. false로 설정하면, 컨테이너는 EL 식을 계산됩니다.


EL 기본 연산자

대부분의 자바 산술 및 논리 연산자에 의해 제공되는 EL 식 지원 :

운영자 기술
. 콩 속성 또는 매핑 항목에 액세스
[] 요소의 배열 또는 목록에 액세스
() 우선 순위를 변경하는 서브 표현식 정리
+ 플러스의
- 저장 또는 음
* 곱하기
/ 또는 div에
% 또는 모드 모듈
== 또는 EQ 평등에 대한 테스트
! = 또는 북동 테스트 여부 불평등
<또는 LT 이상 여부를 덜 테스트
> 아니면된다 시험은보다 큰
<= 또는 제작 테스트 이하 여부
> = 또는 GE 테스트 이상인 여부
&& 또는과 테스트 로직
|| 또는 또는 테스트 로직 또는
! 아니면하지 시험 부정
시험 여부는 null

JSP로 EL 기능

JSP EL 기능을 사용하면 표현식에서 사용할 수 있습니다. 이 기능은 사용자 정의 태그 라이브러리에 정의해야합니다. 다음과 같이 함수 구문은 사용

${ns:func(param1, param2, ...)}

NS 네임 스페이스 (공간)을 의미 FUNC 함수의 이름, PARAM1는 첫 번째 인수를 의미 PARAM2는 두 번째 인수를 의미합니다. 문자열의 길이를 얻기 위해 다음과 같이 할 수있다 JSTL 라이브러리에서 정의 된 길이, 예를 들어, 함수 FN이있다 :

${fn:length("Get my length")}

태그 라이브러리 함수를 사용하려면 서버에 설치된이 라이브러리를 필요로하고 <태그 라이브러리> 태그는 JSP 파일의 라이브러리가 포함되어 사용합니다.


JSP EL 내장 객체

JSP EL 내장 객체는 다음 표에 나와있는 지원 :

숨겨진 개체 기술
pageScope 범위 페이지
requestScope 요청 범위
sessionScope 세션 범위
applicationScope 응용 프로그램 범위
PARAM 요청 개체 매개 변수 문자열
paramValues 매개 변수 Request 객체, 문자열 컬렉션
헤더 HTTP 헤더 문자열
headerValues HTTP 헤더, 문자열 컬렉션
인 initParam 컨텍스트 초기화 파라미터
쿠키 쿠키 값
pageContext에 현재 pageContext와 페이지

당신은 같은 변수를 사용하여 같은 표현식에서 이러한 개체를 사용할 수 있습니다. 다음에 더 나은이 개념을 이해하는 몇 가지 예를 제공합니다.


pageContext와 객체

pageContext와 객체는 JSP pageContext와 객체에 대한 참조입니다. pageContext와 객체하면 요청 개체에 액세스 할 수 있습니다. 예를 들어,이 같은 쿼리 문자열에 전달 된 요청 객체를 액세스 할 수 :

${pageContext.request.queryString}

범위 개체

pageScope, requestScope, sessionScope는 applicationScope 변수는 각 변수 범위 지정 수준에 저장된 데이터에 액세스하는 데 사용됩니다.

명시 적 상자 applicationScope 가변 층에 접근 할 필요가있는 경우 예를 들어, 액세스 할 수 applicationScope.box있다.


PARAM 및 paramValues ​​객체

PARAM 및 paramValues는 방법 및 request.getParameterValues ​​request.getParameter 방법을 이용하여 파라미터 값을 액세스하는 데 사용되는 객체.

예를 들어, 이름 순서 매개 변수에 대한 액세스,이 표현을 사용할 수 있습니다 : $ {param.order} 또는 $ {의 param [ "순서"]}.

다음 예는 사용자 이름 요청 매개 변수에 액세스하는 방법을 보여줍니다

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "Accessing Request Param";
%>
<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 객체는 paramValues ​​객체가 문자열 배열을 반환하고, 하나의 문자열을 반환합니다.


헤더 객체와 headerValues

헤더 headerValues ​​객체 방법 및 request.getHeaders request.getHeader 방법을 사용하여 상기 헤더 정보에 액세스하는데 사용된다.

$ {header.user 에이전트} 또는 $ {헤더 [ "사용자 에이전트"]} 예를 들어, 정보에 액세스,이 표현을 사용하여, 사용자 에이전트 헤더를했다.

다음 예는 사용자 에이전트 헤더에 액세스하는 방법을 보여줍니다

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "User Agent Example";
%>
<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>

결과는 다음과 같습니다 :

JSP로 표현 언어

headerValues ​​문자열의 배열을 반환하는 동안 헤더 객체는 단일 값을 반환합니다.