더보기
package com.example.controllerexam.controller.exam06;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
* packageName : com.example.controllerexam.controller.exam06
* fileName : MultiPathVariableController
* author : L.DH
* date : 2023-10-05
* description : 2개 이상 @PathVariable 사용 예제
* 요약 :
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* ———————————————————————————————
* 2023-10-05 L.DH 최초 생성
*/
@Controller
@RequestMapping("/exam06")
public class MultiPathVariableController {
// TODO: 예제2 Jsp library 사용법
@GetMapping("/etc")
public String getEtc(Model model) {
return "exam06/etc.jsp";
}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
prefix="c" library 사용법
- 1) 변수에 값을 저장
- 2) 문자열 구분자로 전체 출력함
- 3) try ~ catch 실행문이 에러가 발생하면 에러변수에 메세지가 들어감
- 4) 페이지 강제 이동
- 5) 공통 페이지 끼워 넣기 : 머리말, 꼬리말
- 6) url 로페이지 이동하기
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO: c lib import --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="container">
<%-- TODO : 1. "c" library --%>
<%-- TODO : 1) 변수에 값을 저장 --%>
<%-- TODO : 변수 저장소(사용범위) --%>
<%-- TODO : page(현재 페이지) < request < session < application(전체프로그램) --%>
<%-- 사용법 : <c:set var="변수명" value="값" /> --%>
<%-- TODO : jstl 표현식 --%>
<p><c:set var="num" value="10" scope="page"/></p>
<p><c:set var="num2" value="10" scope="page"/></p>
<p><c:set var="total" value="${num + num2}" scope="page"/></p>
<%-- TODO : el 표현식 --%>
<p>${num}</p>
<p>${num2}</p>
<p>${total}</p>
<%-- TODO : 2) 문자열 구분자로 전체 출력함 --%>
<%-- 사용법 : <c:forTokens items="문자열" delims="구분자" var="변수명">--%>
<%-- 실행문 --%>
<%-- </c:forTokens> --%>
<c:forTokens items="1/2/3" delims="/" var="number">
<h2>토큰 : ${number}</h2>
</c:forTokens>
<%-- TODO : 3) try ~ catch --%>
<%-- 사용법 : <c:catch var="에러변수"> --%>
<%-- 실행문 --%>
<%-- </c:catch> --%>
<%-- 실행문이 에러가 발생하면 에러변수에 메세지가 들어감 --%>
<c:set var="num3" value="${10/0}"/>
<c:catch var="err">
<h2>${num3}</h2>
</c:catch>
<c:if test="${not empty err}">
에러 메세지 : ${err.message}
</c:if>
<%-- TODO: 4) 페이지 강제 이동 --%>
<%-- 사용법 : <c:redirect url="이동할_url주소" /> --%>
<%-- <c:redirect url="/exam00/hello" /> --%>
<%-- TODO : 5) 공통 페이지 끼워 넣기 : 머리말, 꼬리말 --%>
<%-- 사용법 : <c:import url="보여줄페이지"/> --%>
<c:import url="footer.jsp"/>
<%-- TODO : 6) url 로페이지 이동하기 --%>
<%-- 사용법 : <c:url value="url주소" var="변수명" /> --%>
<%-- 사용 : <a href="${변수명}">보여지는문구</a> --%>
<c:url value="http://www.naver.com" var="naver"/>
<h2><a href="${naver}">네이버</a></h2>
</div>
</body>
</html>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
prefix="fn" library 사용법
- 예시 변수명 : chars, name
- 1) chars 문자열에 name 값 있으면 true, 없으면 false
- 2) chars 문자열에 "홍길동" 값이 있는 index 번호 리턴
- 3) 전체 길이를 리턴
- 4) chars 문자열에서 "홍길동" -> "장길산" 변경
- 5) chars 에서 " " 로 문자열 자르기 : 리턴값 : 배열
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%-- TODO: fn lib import --%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="container">
<%-- TODO : 2. "fn(function)" library --%>
<c:set var="chars" value="안녕하세요 홍길동입니다. Bue"/>
<c:set var="name" value="홍길동"/>
<%-- TODO : fn 라이브러리 el 표현식과 함께 사용 --%>
<%-- 사용법 : ${fn:contains(chars, name)} --%>
<%-- TODO : 1) chars 문자열에 name 값 있으면 true, 없으면 false --%>
<h2>contains : ${fn:contains(chars, name)}</h2>
<%-- TODO : 2) chars 문자열에 "홍길동" 값이 있는 index 번호 리턴 --%>
<h2>indexOf : ${fn:indexOf(chars, "홍길동")}</h2>
<%-- TODO : 3) 전체 길이를 리턴 --%>
<h2>length : ${fn:length(chars)}</h2>
<%-- TODO : 4) chars 문자열에서 "홍길동" -> "장길산" 변경 --%>
<h2>replace : ${fn:replace(chars, "홍길동", "장길산")}</h2>
<%-- TODO : 5) chars 에서 " " 로 문자열 자르기 : 리턴값 : 배열 --%>
<h2><c:set var="sChar" value='${fn:split(chars, " ")}'/></h2>
<h2>${sChar[0]}</h2>
<h2>${sChar[1]}</h2>
<h2>${sChar[2]}</h2>
<%-- TODO : 6) chasrs 에서 0 인덱스 ~ 6-1 인덱스까지 자르기 --%>
<h2>${fn:substring(chars, 0, 6)}</h2>
<%-- TODO: 7) 대/소문자 바꾸기 --%>
<h2>${fn:toLowerCase(chars)}</h2>
<h2>${fn:toUpperCase(chars)}</h2>
</div>
</body>
</html>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %
prefix="fmt" library 사용법
- 1) 숫자 찍기
- 2) 통화 찍기
- 3) 날짜 포맷 주기(현재 날짜와 시간 출력)
더보기
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%-- TODO: fmt lib import --%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="container">
<%-- TODO : 3. "fmt(function)" library --%>
<c:set var="numtest" value="1234567890"/>
<%-- TODO : 1) 숫자 찍기 : --%>
<h2><fmt:formatNumber value="${numtest}"/></h2>
<%-- TODO : 2) 통화 찍기 : --%>
<h2><fmt:formatNumber value="${numtest}" type="currency"/></h2>
<%-- TODO : 3) 날짜 포맷 주기 : --%>
<%-- jsp 과거 코딩 : 스크립틀릿 -> el, jstl 사용(권고) --%>
<%-- <%@ page import="java.util.Date" %> 임포트 발생함 --%>
<%
Date date = new java.util.Date();
%>
<%-- TODO : 화면 출력시 : <%=변수명%> %>--%>
<h2><%=date%></h2>
<c:set var="today" value="<%=new java.util.Date()%>"/>
<h2><fmt:formatDate value="${today}"
pattern="yyyy-MM-dd hh:mm:ss"/></h2>
</div>
</body>
</html>
'Spring Boot' 카테고리의 다른 글
[SpringBoot] CRUD (1) | 2023.10.10 |
---|---|
[SpringBoot] 로그백, 로깅 라이브러리 logback , log4jdbc 설정 (0) | 2023.10.06 |
[SpringBoot] 데이터를 입력받아(insert) 화면에 출력하기 (0) | 2023.10.06 |
[SpringBoot] 데이터를 저장하고 멤버 객체 생성하여 결과 json 데이터로 전송 (0) | 2023.10.06 |
[SpringBoot] 매개변수(파라메터) 전달받아 출력하기 (0) | 2023.10.05 |