반응형
💡 모델을 통해 변수 등록하는 방법
모델은 컨트롤러의 메서드에서 매개변수로 받아옵니다. 모델에서 변수를 등록할 때는 addAttribute() 메서드를 사용합니다.
model.addAttribute("변수명", 변숫값);
📂 HelloController.java
package com.example.controllerexam.controller.exam01;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
* packageName : com.example.controllerexam.controller.exam01
* fileName : HelloController
* author : GGG
* date : 2023-10-04
* description : JSP, 타임리프 : SSR (Server Side Rendering)
* 1) 구조 => Springboot 소스가 같이 있음
* 2) html 파일을 Springboot에서 만들어서 웹브라우저로 전송함
* React / Vue : CSR (Client Side Rendering)
* 1) 구조 => 소스가 분리됨
* 2) html 파일을 최초 1회 전송하고
* => 다음부터는 변경되는 부분만 서버에서 받고, 나머지는 웹 브라우저에서 자체 만듦
* @GetMapping("url")함수(){ return "jsp페이지명"; }
* => CRUD => Read 요청일때 사용하는 어노테이션
* 요약 :
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* —————————————————————————————
* 2023-10-04 GGG 최초 생성
*/
// TODO 1) @Controller 붙이기
@Controller
public class HelloController {
@GetMapping("/exam01/hello")
public String Hello(Model model){
// TODO: 해쉬맵 자료구조 : (키, 값) => jsp 페이지로 변수를(greeting, greeting2 ...) 전송
model.addAttribute("greeting","안녕 Springboot");
model.addAttribute("greeting2","Springboot 처음이지");
model.addAttribute("greeting3","수고해!!!");
return "exam01/hello.jsp";
}
}
💡 JSP의 el (Expression Language) 표현식
el(Expression Language) 표현식은 자바 Spring에서 전송한(Model) 키 값을 출력할 수 있습니다.
${변수명}
📂 hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 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>
<%-- TODO 부트스트랩 CSS CDN --%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<%-- jsp 주석 --%>
<%-- TODO: el(Expression Language) 표현식 : ${변수명} --%>
<%-- 자바 Spring에서 전송한(Model) 키 값을 출력할 수 있음--%>
<p>${greeting}</p>
<p>${greeting2}</p>
<p>${greeting3}</p>
<%-- TODO: JSTL 표현식(참고) : <c:out value="${변수명}" /> --%>
<p><c:out value="${greeting}" /></p>
</body>
</html>
📌 실행결과
💡 JSP 페이지로 모든 자료형을 보내기
// TODO: 예제 2) JSP 페이지로 모든 자료형을 보내기
// url : /exam01/operation
// jsp : exam01/operation.jsp
✅ JSP에서 JAVA 문법과 같이 사칙연산 / 논리합(곱) / 비교연산자 / 삼항연산자 사용가능!
TODO: 문자열로 생긴 숫자는 자동으로 형변환 됨 (사칙연산시)
JSP : Java Server Page, 자바 문법 모두 사용가능
JSP(.jsp) -> servlet(.java)--%>
📂 HelloController.java
@GetMapping("/exam01/operation")
public String Operation(Model model) {
String strNum = "10";
int iNum = 100;
String strVal = "a";
boolean bVal = true;
model.addAttribute("strNum",strNum);
model.addAttribute("iNum",iNum);
model.addAttribute("strVal",strVal);
model.addAttribute("bVal",bVal);
return "exam01/operation.jsp";
}
📂 operation.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 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>
<%--bootstrap css cdn--%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<%--TODO: spring에서 전송한 값으로 사칙연산, 논리연산 해보기--%>
<div class="container p-3">
<h2>산술연산자</h2>
<div class="ms-3 mt-3">
<%-- TODO: 문자열로 생긴 숫자는 자동으로 형변환 됨 (사칙연산시) --%>
<%-- JSP : Java Server Page, 자바 문법 모두 사용가능 --%>
<%-- JSP(.jsp) -> servlet(.java)--%>
<p>덧셈 : ${strNum + 10}</p>
<p>뺄셈 : ${strNum - 10}</p>
<p>곱셈 : ${strNum * 10}</p>
<p>나눗셈 : ${strNum / 10}</p>
<p>나머지 : ${strNum % 10}</p>
<p>숫자 연산 : ${iNum + 10}</p>
<p>논리 합 : ${bVal || false}</p>
<p>논리 곱 : ${bVal && false}</p>
<p>같음 : ${iNum == 100}</p>
<p>같지않음 : ${iNum != 100}</p>
<p>보다큼 : ${iNum >= 100}</p>
<p>보다작음 : ${iNum <= 100}</p>
<p>조건(삼항) : ${(iNum == 100)? "100임" : "100이 아님"}</p>
<%-- TODO : empty(빈) : 변수의 값이 비었으면(null, 0, "") true, 아니면 false --%>
<p>empty : ${empty iNum}</p>
<p>not empty : ${not empty iNum}</p>
</div>
</div>
</body>
</html>
📌 실행결과
📖 연습문제
// TODO: 연습 1) url : /exam01/hello2 => "exam01/example01.jsp" 에 "안녕 hello2 페이지 " 출력하기
// "Springboot 처음이지"
// "수고해!!!"
📂 HelloController.java
package com.example.controllerexam.controller.exam01;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
// TODO 1) @Controller 붙이기
@Controller
public class HelloController {
// TODO: 연습 1) url : /exam01/hello2 => "exam01/example01.jsp" 에 "안녕 hello2 페이지 " 출력하기
// "Springboot 처음이지"
// "수고해!!!"
@GetMapping("/exam01/hello2")
public String Hello2(Model model){
model.addAttribute("greeting", "안녕 hello2 페이지");
model.addAttribute("greeting2", "Springboot 처음이지");
model.addAttribute("greeting3", "수고해!!!");
return "exam01/example01.jsp";
}
}
📂 example01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 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>
<%-- TODO 부트스트랩 CSS CDN --%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<%-- jsp 주석 --%>
<%-- TODO: el(Expression Language) 표현식 : ${변수명} --%>
<%-- 자바 Spring에서 전송한(Model) 키 값을 출력할 수 있음--%>
<p>${greeting}</p>
<p>${greeting2}</p>
<p>${greeting3}</p>
</body>
</html>
📌 실행결과
반응형
'Spring Boot > 스프링부트 예제' 카테고리의 다른 글
객체 형태로 변환하는 어노테이션 (0) | 2023.10.05 |
---|---|
JSP의 조건문 (1) | 2023.10.05 |
URL 매개변수를 ArrayList 형태로 View에 전달 (0) | 2023.10.05 |
@RequestMapping, @RequestParam (1) | 2023.10.05 |
Hello SpringBoot! (0) | 2023.10.04 |