Builder 란
자바코드를 기계어로 변환(컴파일)하고,
프로그램 실행에 필요한 라이브러리를 포함(링크)시켜
최종적으로 프로그램을 완성하는 도구
1) Maven - pom.xml 에 라이브러리를 설정. xml 기반. ( 단점: 느리다 , html 기반
2) Gradle - bulid.gradle에 라이브러리를 설정. text 기반.
JSP 구성요소
1.지시자
2.스크립트(자바코드 작성을 위한 부분)
-Scriptlet (스크립트릿) : 자바코드 작성 영역 설정
-Expression (표현식) : 출력용
-Declaration
3.EL
4.Tag Library(기본 Action tag, JSPL)
5. 기본 객체 (request, response, session 등)
JSTL (Jsp Standard Tag Library)
Tag Library : 자바의 코드를 HTML 태스 형식으로 처리하도록 제공하는
라이브러리
구성 라이브러리
* 자주쓰임
1) core(*) : 변수 선언(제거) , 제어문(if, forEach 등)
2) format(*) : 출력 형식, (숫자 , 날짜 등)
3) xml : xml 처리관련. ( json 형식을 주로 사용하기 떄문에 잘 안쓰임)
4) sql :DB SQL 관련
5) functions : 콜렉션( 배열 구조체 등), String 처리 관련
사용법
1) 라이브러리( dependency) 필수. jstl 1.2(스프링 프레임 워크에 포함되어있음)
2)taglib로 해당 라이브러리를 포함시켜 사용.
uri 와 prefix로 구성
<%@ taglib uri = "http://java.sun.com/jsp/jspl/core"
prefix = "c">
라이브러리 별 uri와 perfix
1) core : "c", "http://java.sun.com/jsp/jspl/core"
2) format: "fmt" , "http://java.sun.com/jsp/jstl/fmt"
3) xml : "x" , "http://java.sun.com/jsp/jstl/xml"
4) sql " "sql" , "http://java.sun.com/jsp/jstl/sql"
5)function : "fn" , "http://java.sun.com/jsp/jstl/function"
Core 라이브러리
변수 관련
<c:set> : 변수 선언
<c:out> : 출력용
<c:remove> : 변수 삭제
제어 관련
<c:if> : 자바의 if 문과 같으나 else , else if 는 없음
필수 속성 - test : 조건식을 작성하는 속성
null 을 판단할 때는 el의 empty 연산자를 활용.
<c:choose>: 자바의 switch 와 비슷한 태그. (컨테이너 테그)
<c:when> - case 와 비슷한 태그 test 속성을 사용
<c:otherwise> - default와 비슷한 태그
<c:forEach> 자바의 for와 비슷한 태그
주요속성
-var :카운터 변수를 생성하는속성
items와 함께 사용할 경우 목록의 값을 저장하는 변수로 생성됨
-begin : 카운터 변수의 초기값 지정 속성
-end : 반복 회ㅏㅅ수의 한계(상한) 값 지
-step : 카운터 변수의 증가 간격 설정 속성
-items : 배열 형태의 데이터를 입력하는속성
-VarStatus : 반복 상태에 대한 정보를 저장하는 status를 활용하기 위한 변수 설정 속성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>JSTL 기본 사용법</h1>
<h2>변수 활용</h2>
<c:set var="num1" value="10" />
<c:out value="num1" />
<p>num1 : ${num1}</p>
<h2>제어문</h2>
<h3>if</h3>
<p>자바의 if 문과 동일한 기능을 수행 단 else문은 없음</p>
<c:set var="name" value="user01" />
<c:if test="${name != null }">${name }님, 반갑습니다.</c:if>
<br>
<c:if test="${name == null }">Guest님, 반갑습니다</c:if>
<c:if test="${empty name }"></c:if>
<hr>
<h3>choose, when , otherwise</h3>
<c:choose>
<c:when test="${user == 0 }">
<p>관리자님 반갑습니다</p>
</c:when>
<c:when test="${user == 1 }">
<p>사용자님 반갑습니다</p>
</c:when>
<c:otherwise>
<p>처음뵙겠습니다</p>
</c:otherwise>
</c:choose>
<hr>
<h2>forEach</h2>
<h3>기본 형식</h3>
<c:forEach var="f" begin="1" end="5" step="2">
<font size="${f}">안녕하세요</font>
<br>
</c:forEach>
<h3>목록 출력 형식</h3>
<ul>
<c:forEach var="mitem" items="${menu}" varStatus="st">
<c:choose>
<c:when test="${st.first}">
<li style="color: red;">${st.index}-${st.count} : ${mitem}</li>
</c:when>
<c:when test="${st.count % 2 == 0}">
<li style="color: blue;">${st.index}-${st.count} : ${mitem}</li>
</c:when>
<c:otherwise>
<li>${st.index}-${st.count} : ${mitem}</li>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
<a href = "today">[이동]</a>
</body>
</html>
Format 라이브러리
날짜와 시간, 숫자 룰 출력할 때 형식 지정하기 위한 라이브러리
formatDate : 날짜와 시간 출력 형식 지정
주요 속성
- value: 날짜 데이터 (Date 객체)
- type : 날짜와 시간 구분(date - 날짜 , time - 시간 , both - 둘다)
- dateStyle : 날짜 출력 형식
full , long, medium, short
- timeStyle : 시간 출력 형식
full , long , emdium, short
- pattern : 작성자 임의의 형식 지정
formatNumber : 숫자 출력 형식 지정
-value : 숫자 데이터
- pattern : 출력 형식을 임의로 지정
- groupingUsed : 세자리 마다 ' , ' 출력 설정 (기본값 true)
- type : percent, currency (통화)
- currencySymbol : 통화 기호 지정
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<c:set var="date" value="<%=new Date()%>" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>출력 형식</title>
</head>
<body>
<h1>날짜의 출력 형식</h1>
[오늘의 날짜]
<fmt:formatDate value="${date}" />
<br> [현재의 시간]
<fmt:formatDate value="${date}" type="time" />
<hr>
<h2>날짜와 시간의 출력 형식 지정</h2>
[f]
<fmt:formatDate value="${date}" type="both" dateStyle="full"
timeStyle="full" />
<br> [l]
<fmt:formatDate value="${date}" type="both" dateStyle="long"
timeStyle="long" />
<br> [m]
<fmt:formatDate value="${date}" type="both" dateStyle="medium"
timeStyle="medium" />
<br> [s]
<fmt:formatDate value="${date}" type="both" dateStyle="short"
timeStyle="short" />
<br>
<hr>
<h2>임의의 출력 형식 지정</h2>
<fmt:formatDate value="${date}" pattern="yy-MM-dd (E)" />
<br>
<fmt:formatDate value="${date}" type="time" pattern="(a) hh:mm:ss" />
<hr>
<h1>숫자의 출력 형식</h1>
<p>
예 1 :
<fmt:formatNumber value="123456789" groupingUsed="false" />
</p>
<p>
예 2 :
<fmt:formatNumber value="3.141592" pattern="#.#############" />
</p>
<p>
예 3 :
<fmt:formatNumber value="10.5" pattern="#.00000" />
</p>
<p>
예 4 :
<fmt:formatNumber value="1000000" type="currency" currencySymbol="$" />
</p>
<p>
예 5 :
<fmt:formatNumber value="0.98" type="percent" />
</p>
</body>
</html>
여러 jsp 파일을 하나로... (표준 액션 태그)
<jsp : include page = "xxx.jsp" />
'개발일지' 카테고리의 다른 글
SpringLegacy Project -2- (0) | 2024.02.07 |
---|---|
SpringLegacy Project -1- (0) | 2024.02.06 |
SpringLegacy(MVC) (0) | 2024.02.02 |
frontend -3- (1) | 2024.01.11 |
frontend 2일차 (1) | 2024.01.10 |