
- 정의
1-1. EL (Expriession Language)
1-2. JSTL (JSP standard Tag Library) - 예제
2-0. 전체 경로
2-1. Human.java 작성
2-2. HomeController.java 작성
2-3. home.jsp 작성
2-4. 출력 결과
1. 정의
1-1. EL (Expriession Language)
- JSP 2.0에서 새로 추가된 스크립트 언어이며 기존의 표현식을 대체하는 표현 언어
- 배열이나 컬렉션, JavaBean의 프로퍼티에서도 사용
- - JSP에서의 값 표기법 : <% =변수 %>
- - EL 값 표기법 : ${변수}
- Scope 종류
- page : 한 페이지 단위
- request : 요청이 끝나는 단위 (기본값)
- session : 한 사용자 단위
- application : 여러 사용자 단위
- 값을 찾을 때 Attribute는 작은 Scope에서 큰 Scope로 찾음
(page → request → session → application)
attribute란?
: 메소드를 통해 저장되고 관리되는 데이터
PageContext / Request에서 사용될때setAttribute("key", value)
→ 값을 넣는다.
getAttribute("key") → 값을 가져온다.removeAttribue("key")
→ 값을 지운다.
session에서 사용될때
→ set / get / remove 동일하고 추가로++
invalidate( )
→ 값을 전부 지운다.
1-2. JSTL (JSP standard Tag Library)
- 자신만의 태그를 추가할 수 있는 기능
- 연산, 조건문, 반복문 등 DB를 편하게 처리할 수 있음
- 태그를 통해 JSP 코드를 관리하는 라이브러리 (다운받아서 추가해야 함)
//일반 프로그래밍에서 제공하는 것과 유사한 변수 선언
//실행 흐름의 제어 기능, 페이지 이동 기술 제공
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
//숫자, 날짜, 시간을 포매팅하는 기능 제공
//국제화, 다국어 지원 기능
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
//문자열 제공 함수 제공
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
//DB 데이터 입력, 수정, 삭제, 조회 기능 제공
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
//XML문서 처리할 때 필요한 기능 제공
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
- JSP에서 사용해야 하는 자바 코드들을 태그 형태로 사용할 수 있도록 지원, 자바 코드를 제거할 수 있다
| 구분 | 설명 | 사용법 | 비고 |
| set | 변수 생성 | <c:set var="변수명" value="값" [scope="영역"] /> | var : EL 변수의 이름 value : 실제 값을 지정 scope : 변수를 저장할 영역 |
| if | 분기 | <c:if test="true"> 항상 실행 된다. </c:if> |
|
| choose | if - else 에서 else 부분 해결을 위한 switch같은 태그 |
<c:choose> <c:when test="조건1"> 실행문 </c:when> <c:when test="조건2"> 실행문 </c:when> <c:otherwise> 실행문 </c:otherwise> </c:choose> |
test라는 예약어는 HTML 요소의 애트리뷰트 같은 존재이며 변경이 불가 (if도 마찬가지) |
| forEach | 자바의 반복문 | <c:forEach var="변수" items="아이템" begin="시작값" end="끝 값" step="증가값" varStatus="변수명" > 실행문 </c:forEach> |
varstatus - index : 루프 실행에서 현재 인덱스 - count : 루프 실행 횟수 - begin : begin 속성 값 - end : end 속성 값 - step : step 속성 값 - first : 첫 번째 실행인 경우 true - current : 컬렉션 중 현재 루프에서 사용할 객체 |
2. 예제
2-1. 전체 경로

2-1. Human.java 작성


2-2. HomeController.java 작성
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
Human human = new Human();
String name="hello";
int num = 10;
ArrayList<Human> list = new ArrayList<Human>();
list.add(new Human("홍길금", 1));
list.add(new Human("홍길은", 2));
list.add(new Human("홍길동", 3));
model.addAttribute("name", name);
model.addAttribute("num", num);
model.addAttribute("human", human);
model.addAttribute("list", list);
return "home";
}
}

2-3. home.jsp 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>
name: ${name}
age: ${age}
</p>
<p>
human.name: ${human.name}
human.age: ${human.age}
</p>
<c:forEach var="item" items="${list}" varStatus="status">
<p>
index: ${status.index}
현재 몇 번째 휴먼 객체인지
<br>첫 번째 휴먼 객체인가?: ${status.first} (true, false 값을 가짐)
<br>마지막 휴먼 객체인가?: ${status.last} (true, false 값을 가짐)
<br>${status.index}번째 휴먼 객체 name: ${item.name}
<br>${status.index}번째 휴먼 객체 age: ${item.age}
</p>
</c:forEach>
<c:forEach var="cnt" begin="1" end="10" step="2" varStatus="status">
<br> ${status.index}: ${status.count} :${status.first} :${status.last}
</c:forEach>
</body>
</html>

2-4. 출력 결과

참고 사이트 : https://victorydntmd.tistory.com/156
[JSP/JSTL] JSTL과 EL
1. EL ( Expression Language ) EL은 JSP의 출력 문법을 대체하는 표현 언어입니다. <%= i %> JSP에서의 값 표기법이며, i는 변수입니다. ${ i } EL에서의 값 표기법이며, i는 이름입니다. 객체 Scope에서 애트..
victorydntmd.tistory.com
참고 사이트 : https://hunit.tistory.com/203
Jsp〃[EL]과 [JSTL] 한방에 정리 + Core
JSP파일에 자바형식의 코드를 사용하면 불편한 점을 한방에 해결할 수 있는 EL (Expression Language) 과 JSTL (Jsp Standard Tag Library)를 이용해 코드를 간결하게 사용하는 방법에 대해 포스팅하도록 하겠..
hunit.tistory.com
'Language > Spring' 카테고리의 다른 글
| [Spring] 게시판(Board) CRUD 구현하기 (2) | 2022.09.20 |
|---|---|
| [Spring] 프로젝트 생성부터 DTO, DAO 및 기타 관련 파일 작성 (1) | 2022.09.19 |
| [Spring] SQL 테이블 생성 및 데이터 입력, 조회 (0) | 2022.09.15 |
| [Spring] Oracle DB 설치 및 SQL developer 초기 설정 (0) | 2022.09.15 |
| [Spring] 컨트롤러(@Controller) 작성 및 살펴보기 (0) | 2022.09.14 |