= spring02 =
- p01controller -
< Controller04.java >
package org.zerock.controller.p01controller;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.zerock.controller.p01controller.bean.Bean01;
import org.zerock.controller.p01controller.bean.Bean02;
import org.zerock.controller.p01controller.bean.Bean03;
import org.zerock.controller.p01controller.bean.Bean04;
import org.zerock.controller.p01controller.bean.Bean05;
import org.zerock.controller.p01controller.bean.Bean06;
import org.zerock.controller.p01controller.bean.Bean07;
import org.zerock.controller.p01controller.bean.Bean08;
@Controller
@RequestMapping("/cont04")
public class Controller04 {
@RequestMapping("/met01")
public void method01(String name, String city) {
System.out.println(name);
System.out.println(city);
}
@RequestMapping("/met02")
public void method02(HttpServletRequest request) {
//2. 분석 가공
String name = request.getParameter("name");
String city = request.getParameter("city");
Bean01 bean = new Bean01();
bean.setName(name);
bean.setCity(city);
System.out.println(bean);
//3. business logic
//4. add attributes
//5. forward / redirect
}
@RequestMapping("/met03")
public void method03(Bean01 bean) {
System.out.println(bean);
}
// /cont04/met04?country=usa&phone=0109999&address=seoul&email=usa@seoul.com
@RequestMapping("/met04")
public void method04(Bean02 bean) {
System.out.println(bean);
}
// /cont04/met05?name=john&age=33
@RequestMapping("/met05")
public void method05(Bean03 bean) {
System.out.println(bean);
}
// /cont04/met06?id=99&score=99.99
@RequestMapping("/met06")
public void method06(Bean04 bean) {
System.out.println(bean); // 각 프로퍼티가 0이 아니도록 요청
}
// /cont04/met07?tel=010&tel=011&tel=012
@RequestMapping("/met07")
public void method07(@RequestParam("tel") ArrayList<String> tel) {
System.out.println(tel);
}
// /cont04/met08?name=john&tel=010&tel=011
@RequestMapping("/met08")
public void method08(Bean05 bean) {
System.out.println(bean);
}
//?name=john&id=99&address=seoul&address=jeju&address=ny
@RequestMapping("/met09")
public void method09(Bean06 bean) {
System.out.println(bean);
}
@RequestMapping("/met10")
public void method10(@RequestParam("date")
// @DateTimeFormat(pattern = "yyyy-MM-dd") 아래와 같은 식이다.
@DateTimeFormat(iso=ISO.DATE)
LocalDate date) {
System.out.println(date);
}
@RequestMapping("/met11")
public void method11(@RequestParam("dateTime")
@DateTimeFormat(iso=ISO.DATE_TIME)
LocalDateTime dateTime){
System.out.println(dateTime);
}
// /cont04/met12?name=donald&birth=1999-01-01&inserted=1988-01-02T15:33:22
@RequestMapping("/met12")
private void method12(Bean07 bean) {
System.out.println(bean);
}
// /cont04/met13?name=trump&age=99&moved=1988-02-02&writed=2010-03-03T17:22:11
@RequestMapping("/met13")
private void method13(Bean08 bean) {
System.out.println(bean);
}
@RequestMapping("/met14")
public void method14(@RequestParam String name, @RequestParam int age, HttpServletRequest request) {
System.out.println(name);
System.out.println(age);
System.out.println(request);
}
}
met03부터는 아래 bean을 사용해서 문제를 풀어 나가기 때문에, 아래 적도록 하겠다!
< Bean01.java >
package org.zerock.controller.p01controller.bean;
import lombok.Data;
@Data
public class Bean01 {
private String name;
private String city;
}
< Bean02.java >
package org.zerock.controller.p01controller.bean;
import lombok.Data;
@Data
public class Bean02 {
private String country;
private String address;
private String phone;
private String email;
}
< Bean03.java >
package org.zerock.controller.p01controller.bean;
import lombok.Data;
@Data
public class Bean03 {
private String name;
private int age;
}
< Bean04.java >
package org.zerock.controller.p01controller.bean;
import lombok.Data;
@Data
public class Bean04 {
private int id;
private double score;
}
< Bean05.java >
package org.zerock.controller.p01controller.bean;
import java.util.ArrayList;
import lombok.Data;
@Data
public class Bean05 {
private String name;
private ArrayList<String> tel;
}
< Bean06.java >
package org.zerock.controller.p01controller.bean;
import java.util.ArrayList;
import lombok.Data;
@Data
public class Bean06 {
private String name;
private int id;
private ArrayList<String> address;
}
< Bean07.java >
package org.zerock.controller.p01controller.bean;
import java.time.LocalDate;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import lombok.Data;
@Data
public class Bean07 {
private String name;
@DateTimeFormat(iso = ISO.DATE)
private LocalDate birth;
@DateTimeFormat(iso = ISO.DATE_TIME)
private LocalDateTime inserted;
}
http://localhost:8080/controller/cont04/met10?date=2021-12-25
입력하면 나온다!
< Bean08.java >
package org.zerock.controller.p01controller.bean;
import java.time.LocalDate;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import lombok.Data;
@Data
public class Bean08 {
private String name;
private int age;
@DateTimeFormat(iso=ISO.DATE)
private LocalDate moved;
@DateTimeFormat(iso=ISO.DATE_TIME)
private LocalDateTime writed;
}
http://localhost:8080/controller/cont04/met11?dateTime=2021-12-25T12:22:23
입력하면 나온다!
- p02controller -
< Controller05.java >
package org.zerock.controller.p02controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/cont05")
public class Controller05 {
//request handler method return values
@RequestMapping("/met01")
private String method01(HttpServletRequest request) {
// 2. request 분석/가공
// 3. business 로직
// 4. add attribute
// 5. forward / redirect
/* servlet / jsp 사용할 때 */
// String path = "/WEB-INF/view/view01.jsp";
// request.getRequestDispatcher(path).forward(request, response);
/* spring mvc 사용시 */
return "view01";
}
// 할일 : /cont05/met02 로 요청이 오면
// /WEB-INF/views/view02.jsp로 포워드 되도록 method02작성
@RequestMapping("/met02")
public String method02() {
return "view02";
}
@RequestMapping("/met03")
public String method03() {
return "cont05/view03"; // prefix: /WEB-INF/views/ , suffix : .jsp
}
@RequestMapping("/met04")
public String method04() {
return "/cont05/view04"; // /WEB-INF/views//cont05/view04.jsp
}
//redirect
@RequestMapping("/met05")
public String method05() {
/* servlet 사용 시*/
// String location = request.getContextPath() + "/path";
// response.sendRedirect( location);
/* spring mvc 사용 시 */
return "redirect:/cont05/met04";
}
// 할일 : /cont05/met06 으로 요청 왔을 때 /cont05/met04 로 redirect 되는 method06을 만들기
@RequestMapping("/met06")
public String method06() {
return "redirect:/cont05/met04";
}
// /cont05/met07
@RequestMapping("/met07")
public String method07() {
return null; // view 이름과 요청 경로가 같은 경우 null 리턴 가능
}
// /cont05/met08
@RequestMapping("/met08")
public void method08() {
// view 이름과 요청 경로가 같은 경우 void return 타입으로 결정
}
// 할 일 : /cont05/met09 로 요청이 왔을 때 /WEB-INF/views/cont05/met09.jsp로 포워드 되도록 method09 메소드를 작성
@RequestMapping("/met09")
public void method09() {
}
}
이제는, console에 출력 되는 것이 아니라 jsp를 통해서 화면 양식으로 나타낼 수 있는지 확인하는 영역으로
들어섰다!
met04는 /가 두개붙여져 있는데, /가 2개이어도 1개가 붙어있는 것으로 인식되기 때문에,
무시해도 된다는 점을 배우기 위해서 식을 짯다.
met05는 return "redirect:/cont05/met04"로 마무리가 붙어있는데, met05로 입력해도 url이 자동으로 04로 연결이 된다는 것을 인식했다.
met07 요청 경로와, jsp의 이름이 같을 경우가 많은데, return 을 null로 시키면, 자동으로 이름이 같은 jsp를 찾으려고 한다.
met08 return을 null로 하지않고, 그냥 입력하지 않아도 void return 타입으로 결정되어서 jsp를 찾게된다.
할 일 : /cont05/met09 로 요청이 왔을 때
/WEB-INF/views/cont05/met09.jsp로 포워드 되도록 method09 메소드를 작성이 과제였는데
그냥 아무것도 작성하지 않으면 자연스럽게 요청 경로와 같은 jsp를 찾는다@
< view01.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>포워드 잘됨</h1>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< view02.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>할일 2번</h1>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< met09.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>met09.jsp 포워드 완료 <i class="fas fa-search"></i></h1>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
이모티콘이 안나와서 이상하다 생각했는데 resources가 아니라 resource로 바뀌었다는 점 까먹지 말기~
< view03.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>view03 포워드 완료 <i class="fab fa-apple"></i> </h1>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
- p03controller -
< Controller06.java >
package org.zerock.controller.p03controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.zerock.controller.p03controller.bean.Bean01;
import org.zerock.controller.p03controller.bean.Bean02;
@Controller
@RequestMapping("/cont06")
public class Controller06 {
@RequestMapping("/met01")
public void method01(HttpServletRequest request) {
request.setAttribute("myatt12", "hello world");
}
@RequestMapping("/met02")
public void method02(Model model) {
// 4. add attribute
model.addAttribute("myattr1", "myvalue1");
// 5
}
// 할일 : 요청 경로 : /cont06/met03
// view name : /cont06/met03
// view에서 사용하는 attribute 명 : "myattr2"
// myattr2의 값 : "myvalue2"
// 가 되도록 method03 작성
// 또한 view도 작성해서 myattr2가 myvalue2를 출력하는 확인
@RequestMapping("/met03")
public void method03(Model model) {
model.addAttribute("myattr2", "myvalue2");
}
@RequestMapping("/met04")
public void method04(Model model) {
// 3.
Bean01 bean = new Bean01();
bean.setAge(99);
bean.setName("trump");
// 4.
model.addAttribute("myBean", bean);
}
@RequestMapping("/met05")
public void method05(Model model) {
// 3.
Bean01 bean = new Bean01();
bean.setAge(88);
bean.setName("donald");
// 4.
// model.addAttribute("bean01", bean); // attribute의 이름이 클래스(type)의 이름(to lower
// camel case)과 같은 경우 생략 가능
model.addAttribute(bean);
// 할일 : view (jsp) 를 만들어서 "bean01" attribute가 있는 지 확인)
}
@RequestMapping("/met06")
public void method06(Model model) {
model.addAttribute("attr1", "val1");
model.addAttribute("attr2", "val2");
}
@RequestMapping("/met07")
public void method07(String name, String city, Model model) {
model.addAttribute("name", name);
model.addAttribute("city", city);
}
@RequestMapping("/met08")
public String method08(@ModelAttribute("name") String name,
@ModelAttribute("city") String city) {
return "/cont06/met07";
}
@RequestMapping("/met09")
public void method09(Bean01 bean, Model model) {
model.addAttribute("bean", bean);
}
@RequestMapping("/met10")
public String method10(@ModelAttribute("bean") Bean01 bean) {
return "/cont06/met09";
}
@RequestMapping("/met11")
public void method11(@ModelAttribute Bean01 bean) {
}
@RequestMapping("/met12")
public String method12(Bean01 bean) {
return "/cont06/met11";
}
// /cont06/met13?city=seoul&address=gangnam
@RequestMapping("/met13")
public void method13(Bean02 bean) {
// todo1: Bean02 클래스 완성
// todo2: /cont06/met13.jsp 를 작성해서 seoul,gangnam이 출력
}
}
< Bean01.java >
package org.zerock.controller.p03controller.bean;
import lombok.Data;
@Data
public class Bean01 {
private String name;
private int age;
}
위치 : ex00\src\main\webapp\WEB-INF\views\cont06
< met01.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>/cont06/met01.jsp forward</h1>
<p>${myatt12 }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
이제 본격적으로,
< met02.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h2>/cont05/met02.jsp 포워드 됨</h2>
<p>${myattr1 }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< met03.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>
/con06/met03.jsp 실행 되었음
</h1>
<p>
${myattr2 }
</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< met04.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>${myBean.age }</p>
<p>${myBean.name }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< met05.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>${bean01.age }</p>
<p>${bean01.name }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
< met06.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>${attr1 }</p>
<p>${attr2 }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
아직 모델이 왜 꼭 필요한지는 잘 모르겟다..?
< met07.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>${name }</p>
<p>${city }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
http://localhost:8080/controller/cont06/met07?name=captain&city=ny
met08같은 경우에는 return met07로 돌리게 되면서, met 숫자만 바뀌고, 뒤에 식은 같은데,
return 값이 같게 들어가게되다보면 어짜피 model을 통해서 나오는값은 같게 된다는건데.
model의필요성이 명확하게 파악되지 않았기 때문에, 조금 힘들지도~
modelattribute을 사용해서 "bean"이라는 이름으로 들어가라고 말해주는 것이다.
< met09.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>${bean.name }</p>
<p>${bean.age }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
met09도 10을 확용해서 7과 8같이 연습하는데, 아직도 잘 모르겠다고..
굳이 왜 모델을 사용해서 넣어야 하는지 따로 공부를 좀 해봐야 할 것 같다.
< met011.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<p>\${bean01.name } : ${bean01.name }</p>
<p>\${bean01.age } : ${bean01.age }</p>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
http://localhost:8080/controller/cont06/met11?name=ironman&age=77
< met013.java >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="<%= request.getContextPath() %>/resource/css/icon/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
<title>Insert title here</title>
</head>
<body>
<h1>
\${bean02.city } : ${bean02.city }
</h1>
<h1>
\${bean02.address } : ${bean02.address }
</h1>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
</body>
</html>
= 아이콘 사용하기 =
< 파일 넣어서 수정하기 >
src\main\webapp\resources
필요한 자료들을 저렇게 폴더 위치에 넣어놓으면 된다.
< 주소 수정하기 >
font awesome을 활용해서, 아이콘을 삽입하기 위해, 파일을 삽입하고, 사용 할 수 있게 주소를 수정해야한다.
src\main\webapp\WEB-INF\spring\appServlet\servlet-context.xml에
내기준, 16번째 줄
<resources mapping="/resource/**" location="/resources/" />
로 수정
'수업 복습하기 > Spring' 카테고리의 다른 글
day 06 - Spring 05 + 마무리 (0) | 2022.02.07 |
---|---|
Day 05 - Spring04 + TimeMapper -> mapper.xml/.java (0) | 2022.02.03 |
Day04 - Spring03 + TimeMapper (0) | 2021.12.30 |
Day 02 - lombok02 + spring01 (0) | 2021.12.24 |
Day 01 - lombok 다운 및 설정 + lombok01 (0) | 2021.12.23 |