web

표현언어, EL식

Clearing 2022. 8. 12. 16:04
728x90

표현 언어, EL 식은 View 즉, 사용자에게 보여지는 브라우저, .jsp, .html과 같은 곳에서 활용되며

${표현식}, ${변수명}, ${객체명.멤버변수}, ${컬렉션 객체[인덱스]} 과 같은 형태로 사용된다.

 

View에서 EL식을 사용하기 위해서는 사전에 Controller에서 request, session, application과 같은

scope 내장객체에 setAttribute()하여 정보를 전달해 주어야 한다.

${숫자} ${문자열} ${boolean} ${null}과 같은 상수값도 작성 가능하며 기본 연산도 가능하다.

 

예를 들어 아래와 같이 form 태그 내부에서 하나의 값을 선택해 select에게 value값을 주었을 때

<form action="정보를 보내줄 파일명" method="post">
	<select name="sel">
		<option>apple</option>
		<option>banana</option>
		<option>kiwi</option>
	</select>
	<input type="submit" value="선택">
</form>

 

정보를 받는 곳에서는 sel이라 지정한 select태그의 value 값을 표현하기 위해서는

request.getParameter("sel")와 같이 사용해야 하지만 EL 식을 사용하면 ${param.sel}과 같은 형태로

동일한 정보를 나타낼 수 있다.

 

또 다른 예시로 아래와 같은 클래스 파일을 만들고 session에 아래 클래스의 정보를 가진

test라는 이름의 객체가 저장되었다고 할 때

package test; // 예제를 위해 만든 파일로 setter는 생략

import java.util.Arrays;

public class Test {
	private String[] datas = {"apple","banana","kiwi"};
	private int num1=10;
	private int num2=20;
	
	public String[] getDatas() {
		return datas;
	}

	public int getNum1() {
		return num1;
	}

	public int getNum2() {
		return num2;
	}
	
}

 

해당 클래스의 num1과 num2의 합인 30이라는 값을 얻기 위해서는 아래와 같이 자바 빈즈를 이용해 해당 클래스의

객체를 만들거나 세션에 담긴 test객체를 getAttribute를 이용해 Test 객체에 담아 주어야 한다.

1) <jsp:useBean scope="session" id="test" class="test.Test" /> 

2) Test test = (Test)session.getAttribute("test");

	int res = test.getNum1() + test.getNum2();
	out.println(res);

 

하지만 EL 식을 사용한다면 다음과 같이 간단히 표현이 가능하다.

${test.num1} + ${test.num2} = ${test.num1+test.num2}
728x90

'web' 카테고리의 다른 글

태그 파일 기반의 커스텀태그  (0) 2022.08.13
커스텀 태그  (0) 2022.08.12
JSP - session 객체를 이용해 장바구니 만들기  (0) 2022.08.02
JSP 기본 문법  (0) 2022.08.02
JSP를 이용한 서버 프로그래밍  (0) 2022.08.01