1. EL(Expression Language) 의 개요
*EL과 JSTL (Java Standard Tag Library)을 사용하면 <% %>와 같은 스크립팅 태그를 JSP에서 없앨 수 있다.
*EL 표현식은 중괄호( { } )로 묶고 앞에 달러($)기호를 붙이며,도트 연산자를 사용한다.
*EL은 저장 객체의 출력을 단순화 하는 용도로 사용되므로, 저장 객체를 출력할 때도 스크립팅을 전혀 쓰지 않는다.
예를 들어 , <%=request.getParameter("name")%> 대신에 ${param.name} 구문을 사용한다.
*EL은 기본적으로 4가지 Scope(Page,Request,Session,Application) 의 객체에 접근하여 출력을 처리한다.
*EL 에서는 해당값이 null이거나 공백일 경우에는 아무 내용도 표시하지 않고 에러도 발생하지 않는다.
*EL은 JSP에서 기본으로 지원하고, JSTL은 따로 설치해야 한다.
2. EL과 스크립팅 태그 비교
EL(Expression Language) | 스크립팅 태그 |
${param.name} | <%=request.getParameter("name")%> |
${greet} |
<% String value=(String)request.getAttribute("greet"); out.println(value); %> |
${user} |
<% UserVO user= (UserVO)request.getAttribute("user"); out.println(user); %> |
${user.name} |
<% UserVO user= (UserVO)request.getAttribute("user"); out.print(user.getName()); %>
|
${sessionScope.user.name} |
<% UserVO user= (UserVO)session.getAttribute("user"); out.println(user.getName()); %>
|
3. JSTL(Java Standard Tag Library) 개요
*JSTL이란 JSP 표준 라이브러리(JSP Standard Tag Library)
*JSTL은 JSP에서 스크립팅을 사용하지 않으면서 루프를 돌리거나 조건문을 실행할 수 있도록 해줌
*JSP에서 자주 사용하는 기능(반복과 조건, 데이터 관리 포맷, XML조작, 데이터베이스 액세스)을 구현해 놓은 Custom Tag Library 모음
*JSTL은 EL(Expression Language)를 사용하여 표현
*JSTL은 request,response,pageContent,application 과 같은 JSP 내장 객체(Implicit Object)에 쉽게 접근할 수 있음
라이브러리 | 기능 |
URL 식별자 |
접두어 |
코어 (Core) |
일반 프로그램 언어에서 제공하는 변수선언, 조건/제어/반복문 등의 기능을 제공한다. |
http://java.sun.com/jsp/jstl/core | C |
포맷팅(formatting) | 숫자,날짜,시간을 포맷팅하는 기능과 국제화,다국어 지원 기능을 제공한다. | http://java.sun.com/jsp/jstl/fmt | fmt |
함수(function) | 문자열을 처리하는 함수를 제공한다. | http://java.sun.com/jsp/jstl/functions | fn |
데이터베이스(database) | 데이터 베이스의 데이터를 입력/수정/삭제/조회 하는 기능을 제공한다. | http://java.sun.com/jsp/jstl/sql | sql |
XML처리(xml) | XML문서를 처리할 때 필요한 기능을 제공한다. | http://java.sun.com/jsp/jstl/xml | x |
사용예시
<!--선언부-->
<%@ 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}
4. JSTL core태그
JSTL 태그 라이브러리 중에 가장 많이 사용하는 태그이다 .
<% @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>로 선언 해야함
라이브러리 |
태그 |
설명 |
변수지원 | set | JSP에서 사용될 변수를 설정한다. |
remove | 설정할 변수를 제거한다 | |
흐름제어 | if | 조건에 따라 내부 코드를 수행한다. |
choose | 다중 조건을 처리할 때 사용된다. | |
forEach | 컬렉션이나 Map의 각 항목을 처리할 때 사용한다. | |
forTokens |
구분자로 분리된 각각의 토큰을 처리할 때 사용된다. |
|
URL 처리 | import |
URL을 사용하여 다른 자원의 결과를 삽입한다. |
redirect |
지정한 경로로 리다이렉트 한다. |
|
url |
URL을 재작성한다. |
|
기타태그 | catch |
Exception 처리에 사용된다. |
out |
JspWriter에 내용을 알맞게 처리한 후 출력한다. |
5. Controller와 JSP 구현 절차
1. 클라이언트의 요청을 처리할 POJO형태의 Controller 클래스를 작성
2. Controller 클래스에 @Controller 어노테이션을 선언
3. 요청을 처리할 메서드를 작성하고 @RequestMapping 어노테이션을 선언
4.JSP를 이용한 View 영역의 코드를 작성
5. Browser 상에서 JSP 실행
핵심 어노테이션
@Controller : Controller 클래스 정의
@RequestMapping: HTTP요청 URL을 처리할 Controller 메소드 정의
6. View에 데이터를 전달하는 Model 클래스
Controller에서 service를 호출한 결과를 받아서
view에게 전달하기 위헤 ,전달받은 결과를 Model 객체에 저장
Model addAttribute(String name,Object value)
:value 객체를 name 이름으로 저장하고,
view 코드에서는 name으로 지정한 이름을 통해서 value를 사용
'프레임워크 > Spring' 카테고리의 다른 글
Bean 등록 메타정보 구성 전략 및 어노테이션 (0) | 2020.01.08 |
---|---|
Bean 의존관계 설정 (0) | 2020.01.07 |
Spring MVC (0) | 2020.01.06 |
Spring JDBC (0) | 2020.01.03 |
JUnit , Sprint Test (0) | 2020.01.03 |