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" %>
예제
<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
<%--출력문--%>
<!-- 혼자 사용할거면 끝에/(슬래쉬)붙여서 한번에 -->
<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
<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
➡코드
<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
▶ fmt Library 사용하기
<%---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 |