[Spring] 🌱 HelloController

2022. 7. 22. 22:45·Spring
728x90


 

HelloController

 

package kr.ac.kopo.ctc.spring.board.web;

import java.util.Map;

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.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import kr.ac.kopo.ctc.spring.board.domain.Hello;

@Controller
@RequestMapping(value = "/hello")
public class HelloController {

	@RequestMapping(value = "") // class 위에 선언되어 있는 RequestMapping + helloSpringBoot = "/hello"+""
	public String helloSpringBoot(Model model) {
		model.addAttribute("name", "홍길동");
		return "hello";
	}
	
	// localhost:8080/hello/getParameter?name=김유신 :: name의 parameter값을 받아 출력
	@RequestMapping(value = "/getParameter") 
	public String getParameter(Model model, HttpServletRequest req) {
		String name = req.getParameter("name");
		model.addAttribute("name", name);
		return "hello";
	}
	
	// localhost:8080/hello/requestParam?name=홍길동 
	@RequestMapping(value = "/requestParam")
	public String requestParam(Model model, @RequestParam(value="name") String name) {
		model.addAttribute("name", name);
		return "hello";
	}
	
	// 경로상으로 보낼 때, {id}값을 주로 보낸다.
	// localhost:8080/hello/pathVariable/홍길동
	@RequestMapping(value = "/pathVariable/{name}")
	public String pathVariable(Model model, @PathVariable("name") String name) {
		model.addAttribute("name", name);
		return "hello";
	}
	
	// * 가장 많이 사용
	// localhost:8080/hello/modelAttribute?name=홍길동
	@RequestMapping(value = "/modelAttribute")
	public String modelAttribute(Model model, @ModelAttribute Hello hello) {
		model.addAttribute("name", hello.getName());
		return "hello";
	}
	
	// POST
	// localhost:8080/hello/requestBody1/
	// Headers - KEY: Content-Type, VALUE: application/json 
	// Body에서 json형식으로 데이터 넘겨서 확인하기
	@RequestMapping(value = "/requestBody1")
	public String requestBody1(Model model, @RequestBody Map<String, Object> obj) {
		model.addAttribute("name", obj.get("name"));
		return "hello";
	}
	
	// * 가장 많이 사용, 가장 Spring스러운 방법
	// hello 객체를 json타입으로 만들어서 보내줘야 한다.
	// localhost:8080/hello/requestBody2/
	// Headers - KEY: Content-Type, VALUE: application/json 
	// Body에서 json형식으로 데이터 넘겨서 확인하기
	@RequestMapping(value = "/requestBody2")
	public String requestBody2(Model model, @RequestBody Hello hello) { 
		model.addAttribute("name", hello.getName());
		return "hello";
	}
	
}
저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

[Spring] 🌱ResponseEntity란 / Spring Boot에서 Response하기  (0) 2022.09.04
[Spring] 🌱 AOP(Aspect Oriented Programming)  (0) 2022.07.24
[Spring] 🌱 Spring 이란 ( + DI, IoC)  (4) 2022.07.07
'Spring' 카테고리의 다른 글
  • [Spring] 🌱ResponseEntity란 / Spring Boot에서 Response하기
  • [Spring] 🌱 AOP(Aspect Oriented Programming)
  • [Spring] 🌱 Spring 이란 ( + DI, IoC)
ro117youshin
ro117youshin
코딩 / 외국어공부 (영어, 중국어) / 독서 등 자기계발을 기록합니다.
  • ro117youshin
    Taking an extra step
    ro117youshin
  • 전체
    오늘
    어제
    • 분류 전체보기 (153)
      • DDD (5)
      • JAVA (13)
      • Spring Boot (2)
      • Spring (4)
      • MySQL (1)
      • C (1)
      • Algorithm & Data Structure (34)
        • study (15)
        • programmers (0)
        • boj (18)
        • assignments (1)
      • CS: Computer Science (6)
        • CS50 2019 (4)
        • Network (2)
        • Database (0)
      • Git (3)
      • foreign language (16)
        • English (0)
        • Chinese (16)
      • BOOK (2)
      • ETC (2)
      • youtube.com|user|egoing2 (64)
        • WEB1 - HTML & Internet (5)
        • WEB2 - CSS (9)
        • WEB2 - JavaScript (18)
        • JavaScript Immutability (0)
        • DATABASE1 (4)
        • DATABASE2 MySQL (12)
        • JAVA1 (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    개발공부
    mysql
    백준
    Domain Driven Design
    나의 앱 만들기
    생활코딩
    HSK6급모의고사
    최범균
    코딩공부
    DATABASE2
    조건문
    중국어공부
    js
    HSK6급공부
    variable
    도메인 주도 설계
    baekjoon
    HSK6급
    BOJ
    Java자료구조
    HSK6급필수어휘
    객체
    JAVA1
    HTML
    ddd
    자바
    알고리즘문제
    css
    Java
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ro117youshin
[Spring] 🌱 HelloController
상단으로

티스토리툴바