- 기존 표현식보다 편리하게 값을 출력
- 변수와 여러가지 연산자를 포함할 수 있음
- 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() %>와 같은 형태가 됨
'자바 웹 > 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 |