본문 바로가기
Spring/Spring Muzi

Spring Controller(콘트롤러) 주고받는 방식

by 미눅스[멘토] 2023. 8. 2.
728x90

BoardController

package kr.or.ddit.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import lombok.extern.slf4j.Slf4j;


//스프링이 이 클래스를 빈으로 등록하여 관리함
//클래스레베 요청경로 매핑
@RequestMapping("/board")
@Slf4j
@Controller
public class BoardController {
	/*
	 1.요청 경로 매핑
	 -요청 경로는 필수
	 - 속성이 하나일 때 속성명 생략 가능
	 - 클래스레벨 요청경로는 기본 경로로 취급
	 - 클레스레벨 요청경로("/board") + 메소드레벨 요청경로(/register") => 최종요청경로 (/board/register")
	 */
	/*
	 method생략 : get방식
	 리턴타입이 void : return "/board/register";
	 				board폴더에 register.jsp를 forwarding
	 */
	//메서드레벨 요청별로매핑
	//value속성에 요청 경로를 설정
	@RequestMapping(value="/register")
	public void registerForm() {
		log.info("registerForm");
	}
	
	//속성이 하나일 떄는 속성명(value) 생략 가능
	@RequestMapping("/modify")
	public void modifyForm() {
		log.info("modifyForm");
		//board폴도의 modify.jsp가 forwarding
	}
	
	// 요청URI : /board/read/12 요청을 를 처리해보자
	// board테이블의 12번글
	// boardNo : 경로(Path) 변수(variable)
	// 1) //board/read?boardNo=12
	//		=>골뱅이RequestParam("boardNo") int boardNo
	// 2) /board/read/12
	//		=>골뱅이PathVariable("boardNo") int boardNo
	@RequestMapping(value="/read/{boardNo}")
	public String read(@PathVariable int boardNo) {
		log.info("readForm->boardNo : " + boardNo);
		
		//board폴더의 read.jsp를 forwarding
		return "board/read";
	}
	
	/*2. 경로 패턴 매필
	 	-요청 경로를 동적으로 표현 가능
	 	-경로 변수(path variable)에 해당하는 값을 파라미터 변수에 설정
	 * */
	
	// 요청URI : /board/update/27
	// 경로 변수명 : boardNo
	// board폴더의 update.jsp를 forwarding 해보자
	@RequestMapping(value="/update/{boardNo}")
	public String update(@PathVariable int boardNo) {
		log.info("update " + boardNo);
		//forwarding
		return "board/update";
	}
	
	/*
	 4. Params매핑
	  -요청 파라미터를 매핑 조건으로 지정하는 경우 params 속성을 사용
	  <button>,<a href..에 따라 호출할 메소드를 바꿔야 할 떄 사용함
	 */
	
	//이건 거의 안씀 10프로만 씀 
	//요청URI : /board/get?register
	//요청방식 : get
	//요청파라미터 : register
	@RequestMapping(value="/get", method = RequestMethod.GET, params = "register")
	public String register() {
		log.info("register");
		//fowarding
		return "board/register";
	}
	
	/*
	  //요청URI : /board/post?register
	  //요청방식 : post
      //요청파라미터 : register
	 */
	@RequestMapping(value="/post", method=RequestMethod.POST, params="register")
	public String registerPost(String bookId) {
		log.info("registerPost");
		log.info("bookId : "+ bookId);
		
		//forwarding
		return "board/register";
	}
	
	/*
	  //요청URI : /board/post?register
	  //요청방식 : post
      //요청파라미터 : update
	 */
	@RequestMapping(value="/post", method=RequestMethod.POST, params="update")
	public String updatePost(String bookId) {
		log.info("updatePost");
		log.info("bookId : "+ bookId);
		
		//forwarding
		return "board/register";
	}
	
	/*
	  //요청URI : /board/post?register
	  //요청방식 : post
      //요청파라미터 : {"delete",bookId :  "ISBN1234"}
	 */
	@RequestMapping(value="/post", method=RequestMethod.POST, params="delete")
	public String deletePost(String bookId) {
		log.info("deletePost");
		log.info("bookId : "+ bookId);
		
		//forwarding
		return "board/register";
	}
	
	/*
	  //요청URI : /board/post?register
	  //요청방식 : post
      //요청파라미터 : {"list",bookId : "ISBN1234"}
	 */
	@RequestMapping(value="/post", method=RequestMethod.POST, params="list")
	public String listPost(String bookId) {
		log.info("listPost");
		log.info("bookId : "+ bookId);
		
		//forwarding
		return "board/register";
	}
	
	
	/*
	  요청URI : /board/get?remove
	  요청방식 : get
	  요청파라미터 : {"remove"}
	 forwarding : board/register.jsp
	 */
	@RequestMapping(value="/get",method=RequestMethod.GET, params="remove")
	public String remove() {
		log.info("remove");
		
		//forwarding
		return "board/register";
	}
	
	/*
	  요청URI : /board/post?remove
	  요청방식 : post
	  요청파라미터 : {"remove"}
	 forwarding : board/register.jsp
	 */
	@RequestMapping(value="/post", method = RequestMethod.POST, params="remove")
	public String removePost() {
		log.info("removePost");
		
		//forwarding
		return "board/register";
	}
	
	/*
	  요청URI : /board/get?read
	  요청방식 : get
	  요청파라미터 : {"read"}
	 forwarding : board/register.jsp
	 */
	@RequestMapping(value="/get", method = RequestMethod.GET,  params = "read")
	public String readPost() {
		log.info("read");
		//forwarding
		return "board/register";
	}
	
	
}

 

 

board.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<script src="/resources/js/jquery-3.6.0.js"></script>
<script type="text/javascript">

$(function(){
//document 내의 모든 요소들이 로딩된 후 실행
	$("#btnHeaders").on("click", function(){
		console.log("이순신")
		
		let boardNo = "10";
		let title = "개똥이의 여행";
		let contnet = "개똥이 여행을 떠나다";
		let writer = "개똥이";
		
		let data = {"boardNo": boardNo,
					"title" : title,
					"contnet" : contnet,
					"writer" : writer
					};
		//JSON은 object -> string으로 변환
		console.log("data :" + data);
		console.log("data :" + JSON.stringify(data));
		
	});
});

</script>


<h3> register</h3>

<p>
   <!-- 
   요청 URI : /board/post?register
   요청방식 : get
   요청파라미터 : register
    -->
   <form action="/board/post" method="post">
      <input type="text" name="bookId" value="ISBN1234" />
      <!-- 요청 URI : /board/post?register -->
      <button type="submit" name="register">Register</button>
      <button type="submit" name="update">Update</button>
      <button type="submit" name="delete">Delete</button>
      <button type="submit" name="list">List</button>
   </form>
    <!--/board/post?remove -->
   <form action="/board/post" method="post">
   	  <a href = "/board/get?read" class="btn btn-primary">read</a>
   	  <button type="button" id="btnHeaders">Headers매핑</button>
      <button type="submit" name="remove">remove</button>
   </form>
   
</p>

'Spring > Spring Muzi' 카테고리의 다른 글

외부강사님 교육?!  (0) 2023.10.07
외부강사님 교육  (0) 2023.08.26
e7e샘의 파일 업로드 원본  (0) 2023.08.01
tiles-config.xml(설정파일)  (0) 2023.07.31
root-context.xml(설정파일)  (0) 2023.07.31