EL과 JSTL
EL의 개요 (Expression Language)
- EL과 JSTL을 사용하면 <% %> 와 같은 스크립팅 태크를 JSP에서 없앨 수 있다.
- EL 표현식은 중괄호 {} 로 묶고 앞에 달러($) 기호를 붙이며, 도트 연산자를 사용
- EL은 저장 객체의 출력을 단순화하는 용도로 사용되므로, 저장 객체를 출력할 때도 스크립팅을 전혀 쓰지 않는다.
- 예를 들어 <%request=getParameter("name"%> 대신에 ${param.name} 구문을 사용한다.
- 기본적으로 4가지 scope(page, request, session, application) 의 객체에 접근하여 출력 처리
- 해당 값이 null 이거나 공백일 경우 아무 내용도 표시하지 않음
- JSP에서 기본으로 지원하고, JSTL은 따로 설치해야 한다.
JSTL의 개요
- JSP 표준 라이브러리
- JSP에서 스크립팅을 사용하지 않으면서, 루프를 돌리거나 조건문을 실행할 수 있도록 해줌
- JSP에서 자주 사용하는 기능(반복과 조건, 데이터 관리포맷, XML 조작, 데이터베이스 엑세스)를 구현해 놓은 Custom Tag Library 모음
- EL을 사용하여 표현
- request, response, pageContext, application과 같은 JSP 내장 객체(Implicit Object)에 쉽게 접근할 수 있음
JSTL은 아래와 같이 5개의 라이브러리가 있다.
- 코어 (core) - 일반 프로그램 언어에서 제공하는 변수선언, 조건/제어/반복문 등의 기능 / c
- 포맷팅 (formatting) - 숫자, 날짜 ,시간을 포맷팅하는 기능과 국제화, 다국어 지원기능 / fmt
- 함수 (function) - 문자열을 처리하는 함수 제공 / fn
- 데이터베이스 (database) - 데이터 입력 수정 삭제 조회 기능 / sql
- XML 처리 (xml) - xml 문서를 처리할 때 필요한 기능 / x
JSTL의 사용
<!-- 선언부 -->
<%@ taglib prefix="C" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!-- 사용 -->
<c:set var="hello" value="Hello"/>
${hello}
JSTL의 core 태그
변수지원 |
set |
jsp에서 사용될 변수를 설정한다. |
remove |
설정할 변수를 제거한다. |
흐름제어 |
if |
조건에 따라 내부 코드를 수행한다. |
choose |
다중 조건을 처리할 때 사용 |
forEach |
컬렉션이나 Map의 각 항목을 처리할 때 사용한다. |
forTokens |
구분자로 분리된 각각의 토큰을 처리할 때 사용한다. |
URL 처리 |
import |
URL을 사용하여 다른 자원의 결과 삽입 |
redirect |
지정한 경로로 리다이렉트 |
url |
URL 재작성 |
기타태그 |
catch |
익셉션 처리에 사용 |
out |
jspWriter에 내용을 알맞게 처리한 후 출력 |
Hello 컨트롤러 작성
Controller 와 JSP 구현 절차
- 클라이언트의 요청을 처리할 POJO 형태의 Hellocontroller 클래스를 작성
- Controller 클래스에 @Controller 어노테이션 선언
- 요청을 처리할 메서드를 작성하고 @RequestMapping 어노테이션 선언
- JSP를 이용한 View 영역의 코드를 작성
- 브라우저 상에서 JSP 실행
Controller를 위한 핵심 어노테이션
- @Controller Controller 클래스 정의
- @RequestMapping HTTP 요청 URL을 처리할 Controller 메소드 정의
Controller와 JSP 호출 순서
Veiw에 데이터를 전달하는 Model 클래스
- Controller에서 Service를 호출한 결과를 받아서 view에 전달하기 위해, 전달받은 결과를 Model 객체에 저장
- Model allAttribute(string name, Object value) - value 객체를 name 이름으로 저장하고, view 코드에서는 name으로 지정한 이름을 통해 value 사용
Controller와 JSP 구현
컴포넌트 스캔 범위 조정
실행화면
사용자 목록 조회 컨트롤러 작성
사용자 관리 프로젝트 클래스 설계
사용자 목록 조회 : Controller 와 JSP 구현 절차
- 클라이언트의 요청을 처리할 POJO 형태의 UserController 클래스 작성
- Controller 클래스에 @Controller 어노테이션 선언
- 사용자 목록을 조회하는 getUserList() 메서드를 작성하고 @RequestMapping 어노테이션을 선언
- userList.jsp 페이지에 View 영역의 코드를 작성
- 브라우저 상에서 JSP 실행
1. index.jsp
2. UserController.java
3. beans.xml 컴포넌트 스캔 설정
4. userList.jsp
실행화면