본문 바로가기
개발일지

SpringLegacy -2-

by 태운콩즙 2024. 2. 5.
728x90
반응형

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" />

728x90
반응형

'개발일지' 카테고리의 다른 글

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