JSTL과 EL : JSTL과 EL개념, CORE 라이브러리(out)

JSTL (JSP Standard Tag Library)(p510~)

  • 커스텀태그 : 개발자가 직접 정의할 수 있는 태그를 의미.
  • 자카르트회사에서 제공 –인수–> 아파치에서 제공
  • 자주 사용되는 필요한 기능들을 모아놓은 커스텀 태그 라이브러리.
  • 실무에서 사용빈도가 매우 높음.

종류

  1. CORE 라이브러리
    • 변수선언, 조건문, 반복문 처리 가능
    • 페이지 이동처리 가능
  2. Formmating 라이브러리
    • 국제화 : 다국어처리 기능
    • 형식화 : 숫자, 날짜 처리 기능
  3. DataBase 라이브러리
    • CRUD 처리 기능
  4. XML 라이브러리
    • xml 처리 기능




JSTL 설정

  1. 아파치 톰캣 페이지에서 Impl, Spec, EL 3가지 다운로드.
  2. new 다이나믹 웹 프로젝트를 생성해서 위의 3가지 라이브러리 추가.




EL (Expression Language)(p512~)

  • JSTL과 EL은 거의 같이 사용함.
  • JSP 스트립트 태그(<%=%>)를 대신하여 JSP값들을 좀더 편리하게 출력하기 위해 제공되는 언어.
    1
    2
    3
    4
    5
    6
    //JSP표현식
    <%=HELLO%>

    //EL
    ${hello}
    //제이쿼리랑 비슷하게 생겼지만 다름




EL 내장객체

https://m.blog.naver.com/PostView.nhn?blogId=rbamtori&logNo=220770908492&proxyReferer=https:%2F%2Fwww.google.com%2F




EL 특징

  1. EL태그안에서는 연산가능
  2. 값이 null일 경우 NullPointerException이 아니라 빈 공백으로 출력됨
    • 빈 공백은 default 속성을 사용해서 원하는 문자 출력 가능.
    • 배포 후 서비스운영시 에러가 나서 서버가 다운되는 것보다 빈 공백으로 표시되는게 훨씬 좋음
  3. 빈 공백은 default 속성을 사용해서 원하는 문자 출력 가능.
  4. 태그를 body에 나타내고 싶을때 방법 2가지
    • 유니코드사용
    • jstl사용 : 유니코드보다 훨씬 간편
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- 특징  -->
<!-- 1.EL태그안에서는 연산가능 -->
<c:out value="10+20"></c:out><br>
<c:out value="${10+20}"></c:out><br>

<!-- 2.값이 null일 경우 nullpointexection이 아니라 빈공백으로 출력됨 -->
<c:out value="${itwill.name}"/><br>
<c:out value="${null}"/><br>

<!-- 3.빈 공백은 default 속성을 사용해서 원하는 문자 출력 가능. -->
<c:out value="${null}" default="NULL대신해서 출력"/><br>
<c:out value="${null}" default="${'NULL대신해서 출력 EL태그'}"/><br>

<!-- 4. 태그를 body에 나타내고 싶을때 방법 2가지-->
<itwill>태그명이 itwill입니다<br>
<!-- 4-1. 유니코드사용 -->
&lt;itwill>태그명이 itwill입니다<br>
<!-- 4-2. jstl사용 -->
<c:out value="<itwill>태그명이 itwill입니다"/><br>




화면에 데이터를 출력하는 7가지 방법

  1. html코드 사용해서 출력
  2. out.print() JAVA코드 사용해서 출력
  3. JSP표현식 사용해서 출력
  4. Jquery 사용 출력
  5. EL 표현식 사용해서 출력
  6. JSTL 사용 화면 출력 : 반드시 taglib import해줘야한다.
  7. JSTL안에서 EL사용해서 출력
  • 주로 실무에서 5번이나 7번방법을 많이 사용함.
  • c:out 화면에 value값을 출력하는 기능의 태그라이브러리
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 6.jstl을 사용하기위해 taglib import함
prefix를 c로 지정 ex)a를 써도되고 b를 써도되는데 일반적으로 core lib를 뜻하는 c를 쓴다.
*반드시 태그라이브러리 추가를 해야지만 사용가능
-->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 컴퓨터에 있는 제이쿼리 라이브러리 추가 -->
<script src="../js/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('body').append("4. Jquery 사용 출력<br>");
});
</script>
</head>
<body>
<h2>화면에 데이터를 출력하는 7가지 방법</h2>
1. html코드 사용해서 출력<br>

<%
out.print("2. out.print() JAVA코드 사용해서 출력<br>");
%>

<%="3. JSP표현식 사용해서 출력<br>"%>

${"5. EL 표현식 사용해서 출력<br>" }

<!-- c:out 화면에 value값을 출력하는 기능의 태그라이브러리 -->
<c:out value="6. JSTL 사용 화면 출력"></c:out><br>
<c:out value="${'7. JSTL안에서 EL사용해서 출력'}}"></c:out><br>

//출력값
화면에 데이터를 출력하는 7가지 방법
1. html코드 사용해서 출력
2. out.print() JAVA코드 사용해서 출력
3. JSP표현식 사용해서 출력
5. EL 표현식 사용해서 출력
6. JSTL 사용 화면 출력
7. JSTL안에서 EL사용해서 출력}
4. Jquery 사용 출력