본문 바로가기

자바 웹/jsp

표현 언어

728x90
  • 기존 표현식보다 편리하게 값을 출력
  • 변수와 여러가지 연산자를 포함할 수 있음
  • JSP의 내장 객체에 저장된 속성 및 자바의 빈 속성도 표현 언어에서 출력 가능
  • 표현 언어 자체 내장 객체도 제공
  • JSP 페이지 생성 시 기본 설정은 표현 언어를 사용할 수 없음
  • 페이지 디렉티브 태그에서는 반드시 isELIgnored = false로 설정해야 함

${표현식 또는 값}

 

 * ${"10"+1} 이렇게 문자열과 숫자를 더하면 자동으로 문자열이 숫자로 변환되어서 11을 출력한다.

 

표현언어 연산자

기존의 연산자와 동일하게 사용할 수 있으며, 특이한 건 값이 비어있는지 아닌지를 판별하는 empty 연산자 정도

 

표현 언어 내장 객체


JSP에서 기본적으로 제공하는 내강 객체들은 표현식에서만 사용할 수 있으며, 표현 언어에서는 따로 내장 객체들을 제공한다. 표현 언어에서 제공하는 내장 객체들은 ${}안에서만 사용할 수 있다.

 

param 내장 객체

표현식을 사용할 때는 폼에서 넘어온 속성 값들을 변수를 선언하고 request.getParameter 메서드로 받아서 표현식을 통해서 출력했었다.

 하지만 표현 언어의 param 내장 객체를 사용하면 ${param.속성값} 과 같은 형태로 나타낼 수 있다.

 

즉,

String id = request.getParameter("id");

 

<%= id %>

 

이런식으로 할 필요 없이

 

${param.id}

 

이런 식으로 출력할 수 있다.

 

requestScope

request 객체와 동일한 기능을 한다.

 

 

폼을 하나 생성한다.

 

 

foward.jsp에서는 주소 정보를 바인딩하고 member2.jsp로 포워딩 해준다.

 

 

다른 정보들은 param 내장객체를 사용해서 받아주고, request 객체에 바인딩된 데이터는 requestScope를 통해서 접근할 수 있다.

 

session이나 application 객체에 바인딩된 데이터는 sessionScope나 applicationScope로 접근할 수 있다.

 

pageContext 객체 사용

<a>태그를 사용해서 다른 서블릿이나 JSP를 요청하는 방법은

 

컨텍스트 이름을 직접 입력하는 아래의 방식

<a href="pro14/test01/memberForm.jsp">회원 가입하기</a>

 

혹은

 

getContextPath() 메서드를 이용해서 컨텍스트 이름을 가져오는 아래의 방식이다.

<a href="<%=request.getContextPath()%>/test01/memberForm.jsp">회원 가입하기</a>

 

첫 번째 방법은 맨 앞의 컨텍스트 이름이 바뀌면 일일이 찾아서 수정해야 하는 단점이 있고, 두 번째 방법은 자바 코드를 사용하기 때문에 화면이 지저분해 진다는 단점이 있다.

 

하지만 pageContext 객체의 속성인 request의 contextPath를 사용하면 아래와 같이 좀 더 깔끔하게 나타낼 수 있다.

<a href="${pageContext.request.contextPath}/test01/memberForm.jsp>회원 가입하기</a>

 

빈 사용

 

예를 들어 이렇게 빈을 생성하고, 전송된 정보를 빈 속성에 설정했다고 하겠다.

 

표현 언어를 사용하기 이전에는 표현식 속에서

 

<%=member.getId()%>

 

이와 같은 형태로 정보를 불러왔었다.

 

표현 언어를 사용하면

 

${member.id}

 

이러한 형태로 빈 id와 속성 이름으로 접근해서 정보를 출력할 수 있다.

 

Collection 객체 사용

표현 언어에서 Collection 객체에 접근할 때는 아래와 같은 형식을 사용한다.

 

${Collection객체이름[index].속성이름}

 

아래는 Collection 객체 중에서 가장 많이 사용되는 ArrayList 사용 예제다

 

 

폼 생성

 

 

멤버빈 객체를 저장할 ArrayList 객체를 생성하고 거기에 값을 담음

 

 

처음값은 폼에서 입력받은 값을 빈 객체를 통해서 가져왔고, 다음으로 빈 객체를 하나 더 생성해 직접 값을 집어넣었음

 

HashMap 사용

 

 

해쉬맵에 직접 넣은 값이 먼저 출력되고, 다음으로 폼에서 입력한 값 마지막으로 자바 코드로 넣은 값이 출력된다.

 

has-a 관계 빈 사용

객체가 다른 객체를 속성으로 가지는 경우를 has-a 관계라고 한다.

 

 

MemberBean 클래스는 위와 같이 작성. 아래에는 getter/setter와 생성자가 생략되어 있음

 

 

도시와 우편번호를 저장하는 Address 클래스 생성

 

 

빈으로 Address 객체를 생성하고, 속성 값을 설정해 준 다음 이 객체를 MemberBean에 세팅한 후 표현 언어를 사용해서 출력

 

표현식을 사용한다면 <%= member.getAddr().getCity() %>와 같은 형태가 됨

 

 

 

728x90

'자바 웹 > jsp' 카테고리의 다른 글

JSP에서 파일 업로드, 다운로드  (0) 2022.06.19
JSP 표준 태그 라이브러리(JSTL)  (0) 2022.06.19
액션 태그  (0) 2022.05.15
JSP 스크립트 요소 기능  (0) 2022.05.14
JSP 정의와 구성요소  (0) 2022.05.14