일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vagrant
- 코딩테스트
- 프로그래머스
- WebHook
- centos7
- mariadb
- Spring Legacy Project
- docker
- jdbc
- window
- Linux
- SSL
- sample
- AWS
- Git
- EC2
- Jenkins
- ssh
- Client
- 책 정리
- github
- Hibernate
- 토비의스프링
- db
- TypeScript
- Java
- spring boot
- DISTINCT
- TLS
- spring
- Today
- Total
Woopii Vyeolog
el태그, Jstl 본문
EL태그
EL(Expression Language)태그는 해석 그대로 표현언어이다.
속성 값들을 편리하게 출력하기 위해서 제공된 언어이다.
jsp에서 <%= >의 scriptlet 방식이나, out.println() 과 같은 자바코드를
더 이상 사용하지 않고 좀 더 간편하게 출력을 지원하기 위한 도구이다.
1. Attribute 형식에서는 '${Attribute이름}' 이렇게 쓴다
해당 attribute이름을 찾을 때 작은 Scope에서 큰 Scope로 찾는다.
(page → request → session → application)
(page : 생성된 페이지 내에서 찾음)
(request : 요청된 페이지 내에서 찾음)
(session : 웹 브라우저의 생명주기와 동일)
(application : 웹 어플리케이션의 생명주기와 동일)
attribute란?
메소드를 통해 저장되고 관리되는 데이터
setAttribute("key", value) → 값을 넣는다.
getAttribute("key") → 값을 가져온다.
removeAttribue("key") → 값을 지운다.
ex)setAttibute("id","abc"); 하면
${id}의 값은 'abc' 가 된다.
2. 만약 parameter가 있어서 그 값을 가져오려면 (parameter형식)
'${param.파라메터 이름}' 이렇게 적어준다.
ex) 예를 들어 /test.jsp?id='abc' 라고 url이 있으면
test.jsp에서 ${param.id}는 'abc'라는 값이 나온다.
<EL표기법에서 자주 사용될 수 있는 객체>
EL태그에서 내장 객체를 제공하기 때문에 각 객체 Scope에 접근할 수 있다.
내장 객체 | 설명 |
pageScope | page Scope에 접근하기 위한 객체 |
requestScope | request Scope에 접근하기 위한 객체 |
sessionScope | session Scope에 접근하기 위한 객체 |
applicationScope | application Scope에 접근하기 위한 객체 |
param | parameter 값을 가져오기 위한 객체 |
header | header 값을 가져오기 위한 객체 |
cookie | cookie 값을 가져오기 위한 객체 |
initParam | JSP 초기 파라미터를 가져오기 위한 객체 |
pageContext | pageContext 객체에 접근하기 위한 객체 |
JSTL(JSP Standard Tag Library)
JSP 코드를 관리하는 라이브러리로서, JSP의 가독성이 좋아진다.
JSTL태그를 통해서 if문, for문, DB 등을 편하게 처리 할 수 있다.
JSTL은 라이브러리이기 때문에 다운해서 사용해야한다.
(다운로드 링크 : http://tomcat.apache.org/taglibs/standard/)
그리고 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"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
예를 들어) 조건문이나 반복문, 출력문의 경우 JSTL의 c태그(core)에 그 기능이 있는데
사용하기 위해선 JSTL을 다운로드 하고
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>를 jsp 파일 맨 위에 적은 다음에 구분에 맞게 사용하면 된다.
<태그의 종류>
1. Core
일반 프로그래밍에서 제공하는 것과 유사한 기능(변수선언, 출력, 조건문, 반복문 등)
실행 흐름의 제어 기능을 제공
페이지 이동 기능 제공
가져올 URI : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2. Formatting
숫자, 날짜, 시간을 포매팅하는 기능을 제공
국제화, 다국어 지원 기능을 제공
가져올 URI : <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
3. DataBase
DB의 데이터를 입력, 수정, 삭제, 조회하는 기능을 제공
가져올 URI : <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
4. XML
XML문서를 처리 할 때 필요한 기능 제공
가져올 URI : <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
5. Function
문자열을 제공하는 함수 제공
가져올 URI : <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!-- 3번째 줄에 isELIgnored="false" 를 넣으면 EL을 사용할 수 있게 된다. -->
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>테스트</title>
</head>
<body>
</body>
</html>
JSTL 태그들
1. <c:set var="변수이름" value="변수 값" scope="영역"> (변수 선언)
자바의 int num = 10; 를
<c:set var="num" value="100">으로 써서 변수 선언 할 수 있다.
영역은 생략 가능
2. <c:out value="출력할 값" default="value가 null일 때 출력할 값">(출력)
자바의 System.out.println("12345"); 를
<c:out value="12345"> 로 표현 할 수 있다. '12345'가 출력된다.
3. <c:remove var="변수명" scope="영역">(변수명을 지움)
해당 영역의 변수명을 지운다. 영역을 생략하면 전체 영역에서 변수가 삭제됨
4. <c:if test="조건식" var="조건 결과(true,false)를 저장할 변수" scope="영역">(else가 없고 if만 있는 간단 조건식)
if만 있는 조건식이다.
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:if> Tag Example</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*2}"/>
<c:if test = "${salary > 2000}">
<p>My salary is: <c:out value = "${salary}"/><p>
</c:if>
</body>
</html>
My salary is: 4000
5. <c:choose> , <c:when> , <c:otherwise> (if-else 다수의 조건문을 걸 때 사용)
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:choose> Tag Example</title>
</head>
<body>
<c:choose>
<!-- ${empty list} : list에 값이 있는지 없는지 확인하는 태그 -->
<c:when test="${empty list }">
등록된 글이 없습니다.
</c:when>
<c:when test="${abc}">
안녕하세요
</c:when>
<c:otherwise>
<c:set var="doneLoop" value="false" />
</c:otherwise>
</c:choose>
</body>
</html>
Your salary is : 4000
Salary is very good.
6. <c:forEach>(반복문)
Java에서의 for문과 같다. 변수명, 시작 index, 종료 index, 증가할 반복수 등 설정할 수 있다.
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:forEach> Tag Example</title>
</head>
<body>
<c:forEach var = "i" begin = "1" end = "5" step = "1">
Item <c:out value = "${i}"/><p>
</c:forEach>
</body>
</html>
Item 1
Item 2
Item 3
Item 4
Item 5
이 이외에도 많이 있지만 다 적을 수는 없으니
전체 정리가 되 있는 사이트를 링크한다.
(https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm)
출처 & 참고
https://victorydntmd.tistory.com/156
'Spring Framework' 카테고리의 다른 글
Hibernate 관련 정리,(3계층 구조, 간단 설명 포함) (0) | 2020.03.20 |
---|---|
(Spring Legacy Project - MVC모델) JDBC Template을 써서 DB연동 (0) | 2020.03.19 |
(Spring Legacy Proejct) parameter넘기기(get,post) (0) | 2020.03.18 |
Spring Legacy Project로 Controller 매핑 (0) | 2020.03.18 |
Maven과 Spring Legacy Project 설정파일 (1) | 2020.03.17 |