JSP | EL, JSTL

2022. 12. 3. 16:51·JSP

EL  ( Expression Language )

: JSP 에서 저장객체를 출력할때 스크립팅을 전혀 쓰지 않을 수 있는 기술입니다

: EL은 일종의 스크립트 언어로 자료 타입 , 수치 연산자 , 논리 연산자 , 비교 연산자 등을 제공하며

표현식<%= %>을 대체 할 수 있습니다.

 

EL 의 사용법

ex) 표현식 : <%= value %>

      EL : ${value}

 

액션태그 와 EL 비교

- 액션태그 : <jsp:getProperty name = "member " property = "name"/>

- EL : ${member.name}

 

EL 내부에 사용하는 연산자
1.산술 : +, --, *, /,
2.관계 : ==, !=, <, <=, >,
3.조건 : a ? b : c a 조건식이 참이면 b 를 실행 , 거짓이면 c 를 실행
4.논리 : &&, ||

 

EL의 내장객체

${내장객체 .name}

내장객체 의미
1.pageScope JSP의 page 객체를 참조하는 객체
2. requestScope (생략가능) JSP의 request 객체를 참조하는 객체
3. sessionScope (생략가능) JSP의 session 객체를 참조하는 객체
4. applicationScope  (생략가능) JSP의 application 객체를 참조하는 객체
5. param 요청 파라미터를 참조하는 객체
6. paramValues 요청 파라미터(배열)를 참조하는 객체
7. initParam 서블릿컨텍스트 초기화 파라미터를 참조하는 객체
8. cookie 쿠키 객체를 참조하는 객체

 

JSTL  ( JSP Standard Tag Library )

: JSP의 경우 HTML 태그와 같이 사용되어 전체적인 코드의 가독성이 떨어진다는 단점이 있어 이런 단점을 보완하고

만들어진 것이 JSTL 입니다 JSTL 을 사용하면 자바의 제어문을 HTML 태그화시킬 수 있습니다. JSTL 의 경우

우리가 사용하는 Tomcat 기본 컨테이너에 포함되어 있지 않으므로, 별도의 라이브러리를 설치하고 사용합니다.

설치 링크 : http://jakarta.apache.org

설치방법 보기

더보기

 

1)  Taglibs 클릭

 

2) Standard 클릭

 

3) Standard 1.1 다운로드 클릭

 

4) binaries/ 클릭

 

5) 1.1.2.zip 

 

6) 알집 풀고 lib 폴더에 복붙 

 

7) web app 라이브러리에 자동 등록된것 확인

 

설치완료!

 


 

 

 

▶ Core Library 사용 방법

-CoreCore라이브러리는 기본적인 라이브러리로 출력 , 제어문 , 반복문 같은 기능이 포함되어있음

- 코어 라이브러리를 사용하기 위해서 반드시 JSP 파일 내의 지시자 태그로 core

		                             		  <%---PREFIX 태그이름-->
<%@taglib uri ="http://java.sun.com/jsp/jstl/core" prefix ="c" %>


예제

 

폼 태그 만들기
jstl_form.jsp
0.00MB

더보기
<h3>if절 확인하기</h3>
<form action="jstl_if.jsp">
	이름 : <input type="text" name = "name"><br>
	나이 : <input type="text" name = "age"><br>
    <input type="submit" name = "확인"><br>
</form>
<h3>choose절 확인하기</h3>
<form action="jstl_choose.jsp">
	이름 : <input type="text" name = "name"><br>
	나이 : <input type="text" name = "age"><br>
	<input type="submit" name = "확인"><br>
</form>

➡ if절 확인 코드

📄 jstl_if.jsp 

jstl_if.jsp
0.00MB

<%--출력문--%>
<!-- 혼자 사용할거면 끝에/(슬래쉬)붙여서 한번에 -->
<c:out value = "hi"/>
<c:out value = "${param.name}"/>
	
<%--변수로 선언--%>
<c:set var = "num" value = "${param.age}"/>
<c:out value = "${num}"/>
	
<hr/>
	
<%--if문--%>
<%if(request.getParameter("name").equals("홍")){%>
	<h3>홍입니다.</h3>
<%}%>
	
<c:if test = "${param.name eq '홍'}">
	<h3>홍입니다.</h3>
</c:if>
	
<c:if test = "${param.age >= 20 }">
	<h3>성인입니다.</h3>
</c:if>
	
<c:if test = "${param.age < 20 }">
	<h3>미자입니다.</h3>
</c:if>

➡ 결과

➡ choose절 확인 코드

📄 jstl_choose.jsp 

jstl_choose.jsp
0.00MB

<c:choose>
	<%-- when절은 조건, otherwise절은 else --%>
	<%-- if --%>
	<c:when test="${param.name eq '홍길동'}">
		<h3>홍길동</h3>		
	</c:when>
	<%-- else if --%>
	<c:when test="${param.name eq '이순신'}">
		<h3>이순신</h3>		
	</c:when>
	<%-- else --%>
	<c:otherwise>
		<h3>둘 다 아님</h3>
	</c:otherwise>
</c:choose>
	
<hr>
<c:choose>
	<c:when test="${param.age >= 20}">
		성인입니다.
	</c:when>
	<c:otherwise>
		미성년자입니다.
	</c:otherwise>
</c:choose>

➡ 결과

➡ for each (향상된 for 문) 

📄 jstl_foreach.jsp

jstl_foreach.jsp
0.00MB

 

➡코드

<c:set var = "sum" value = "0"/>
<c:forEach var = "i" begin = "1" end = "100" step ="2">
	<c:set var = "sum" value = "${sum+i}"/>
</c:forEach>
	
결과 <%=sum %>

➡결과

➡코드

<hr>
<h3>2~9단 까지 구구단 세로 출력(jstl)</h3>
	
<c:set var = "sum" value = "0"/>
<c:forEach var = "i" begin = "2" end = "9" step = "1">
<%--step생략시 자동으로 1임 --%>
		<h3><c:out value="${i}단"/></h3>
	<c:forEach var = "j" begin = "1" end = "9" step = "1">
		${i}x${j}=${i*j}<br>
	</c:forEach>
</c:forEach>

➡결과

.

.

.

.

➡코드

<h3>향상된 포문</h3>
<%
	int[] arr = new int[]{1,2,3,4,5};
	for(int a : arr){
		out.println(a);
	}
%> 
	
<c:set var = "arr" value = "<%=new int[] {1,2,3,4,5} %>"/><br>
<c:forEach var = "a" items = "${arr}" varStatus="s">
<%-- items에는 베열이나 리스트 들어감 --%>
	인덱스 번호 : ${s.index} 
	순서 : ${s.count}
	값 : ${a}
	<br>
</c:forEach>

➡결과

🏁 core 라이브러리 Quiz

 

jstl_quiz.jsp
0.00MB

▶  fmt Library 사용하기

jstl_fmt.jsp
0.00MB

		                             		 <%---PREFIX 태그이름-->
<%@taglib uri ="http://java.sun.com/jsp/jstl/fmt" prefix ="fmt" %>

1) formatDate : 날짜를 날짜의 형태로 변경

 

➡ 코드

<h2>formatDate -> 날짜를 날짜의 형태로 변경</h2>
<%--2022-12-31 => 문자임
	날짜형 데이터만 바꿀 수 있음--%>
	
<c:set var ="day" value="<%=new Date() %>"/>
${day }<br>
	
<fmt:formatDate var = "r_day" value="${day}" pattern = "yyyy년 MM월 dd일 hh:mm:ss"/>
<fmt:formatDate var = "r_day2" value="${day}" pattern = "yy-MM-dd"/>
${r_day }<br>
${r_day2 }<br>

➡ 결과

 

2) parseDate  :  문자를 날짜의 형태로 변경

 

➡ 코드

<h2>parseDate -> 문자를 날짜의 형태로 변경</h2>
<fmt:parseDate var="r_day3" value = "2022-12-02" pattern = "yyyy-MM-dd"/>
${r_day3 }<br>
	
<fmt:parseDate var="r_day4" value = "2022-12-02 23:35:12" pattern = "yyyy-MM-dd HH:mm:ss"/>
${r_day4 }<br>
	
<hr>

➡ 결과

3) formatNumber  :  숫자를 숫자의 형태로 변경

 

➡ 코드

<h2>formatNumber -> 숫자를 숫자의 형태로 변환</h2>
<fmt:formatNumber var="price" value="2000" pattern="0,000.000"/>
${price}<br>

➡ 결과

4) parseNumber:  문자를 숫자의 형태로 변경

 

➡ 코드

<h2>parseNumber -> 문자를 숫자의 형태로 변환</h2>
<fmt:parseNumber var="p_Num" value="1,000원" pattern="0,000원"/>
${p_Num}<br>

➡ 결과

 

 

🏁 fmt 라이브러리 Quiz

<h3>실습</h3>
<h2>아래값들을 2020년 05월 03일 형식으로 변경해서 출력</h2>
	
<c:set var = "TIME_A" value = "2020-04-03"/>	
<fmt:parseDate var ="time_a" value = "${TIME_A}" pattern="yyyy-MM-dd"/>
<fmt:formatDate var = "quiz_day1" value="${time_a}" pattern = "yyyy년 MM월 dd일"/>
${quiz_day1}<br>
	
<c:set var = "TIME_B" value = "<%=new Date() %>"/>
<fmt:formatDate var = "quiz_day2" value = "${TIME_B}" pattern = "yyyy년 MM월 dd일"/>
${quiz_day2}

 

'JSP' 카테고리의 다른 글

JSP | 회원가입, 로그인 수업(1)  (0) 2022.12.05
JSP | MVC2 패턴  (0) 2022.12.03
JSP | JSP 태그  (0) 2022.12.02
JSP | Html( Hyper Text Markup Language )  (0) 2022.11.29
JSP (Java Server Pages)  (0) 2022.11.28
'JSP' 카테고리의 다른 글
  • JSP | 회원가입, 로그인 수업(1)
  • JSP | MVC2 패턴
  • JSP | JSP 태그
  • JSP | Html( Hyper Text Markup Language )
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (164)
      • 프로젝트 (1)
      • TypeScript (1)
      • JavaScript (46)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    자바
    오블완
    Java의 정석
    Java
    자바의 정석
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
JSP | EL, JSTL
상단으로

티스토리툴바