PlusController.java

해질녘·2022년 3월 1일
0

Spring, JPA

목록 보기
2/9

PlusController.java

부스트코스 | 웹 백엔드

강의 따라가던 중에 기억하고 싶은 것이 있어서 남긴다.

컨트롤러 실습 - plus

작동은 다음과 같다.

  • 브라우저에서 /plusform으로 요청하면 숫자 두개를 제출할 수 있는 화면을 출력한다.
    • 그 화면은 plusform.jsp에 있다. 컨트롤러에서 이름을 넘겨서 그 jsp 파일을 뷰로 보여준다.
  • 사용자가 숫자 두개를 입력하고 확인 버튼을 누른다.
    • /plus URL로 POST 방식으로 서버에 전달한다.
    • 두개의 숫자는 value1, value2라는 이름으로 받아서 request scope에 저장된다.
  • PlusController.java@PostMapping(path = "/plus") 이거 밑의 메소드 plus에서 처리가 된다.

자세한 것은 주석참고

코드

plusform.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="plus">  
    <!-- POST 방식으로 /plus URL에 보냄 -->
value1 : <input type="text" name="value1"><br>
value2 : <input type="text" name="value2"><br>
<input type="submit" value="확인">  
</form>  
</body>
</html>

PlusController.java

package kr.or.connect.mvcexam.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

// 컨트롤러의 경우 애노테이션 필수~~
@Controller
public class PlusController {
	// 겟매핑, 포스트매핑 
	@GetMapping(path = "/plusform")
	public String plusform() {
		return "plusForm";
		// 이름을 WebMvcContextConfiguration 의 뷰리졸버한테 넘김
		// 뷰리졸버에서 이름가지고 "이름".jsp 이거를 뷰로 보여줌.
	}

	@PostMapping(path = "/plus")
	public String plus(@RequestParam(name = "value1", required = true) int value1,
			@RequestParam(name = "value2", required = true) int value2, ModelMap modelMap) {
		// @RequestParam : 리퀘스트 스코프의 변수라는 거 
		// plusForm.jsp에서 넘어온 "value1"이름이라는 거를 int value1에 넣어주자. 이런뜻
		int result = value1 + value2;
		// request scope에 넣어서 넘겨줌. required 이거는 필수인지아닌지 여부

		modelMap.addAttribute("value1", value1);
		modelMap.addAttribute("value2", value2);
		modelMap.addAttribute("result", result);
		// 바로 setAttiribute 할수도 있지만, 종속을 피하기 위해 Spring의 modelMap 객체를 받아서 거기에 넣음
		// modelMap 이 알아서 넣어줌. 이외에는 Model객체, ModelandView 등등 있음. 
		// 맵이니까 파라미터가 키, 밸류 이렇게 되는거임.
		
		return "plusResult";
	}
}
profile
해질녘 | 백엔드 공부 중

0개의 댓글