포스트

@ModelAttribute @RequestParam 차이

@ModelAttribute @RequestParam 차이

@ModelAttribute, @RequestParam

  • 로그인 시도시에 @ModelAttribute("user") User user 를 별도로 안만들어도 된다?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
	<div class="login-container" align="center">
	    <h2>로그인</h2>
	    <form action="${root}/login" method="post">
	        <div class="form-group">
	            <label for="id">아이디:</label>
	            <input type="text" id="id" name="id" required>
	        </div>
	        <!-- 사용자의 이름을 숨겨진 필드로 설정 -->
	        <input type="hidden" id="name" name="name" value="김싸피">
	        <div class="form-group">
	            <label for="pass">비밀번호:</label>
	            <input type="password" id="pass" name="pass" required>
	        </div>
	        <div class="form-group">
	            <input type="submit" value="login">
	        </div>
	    </form>
	</div>
1
2
3
4
5
6
7
8
9
10
11
12
	@PostMapping("/login")
	public String login(HttpSession session, Model model, @ModelAttribute("user") User user) {
		logger.debug("userId : {}" , user.getId());
		
		if (user.getId().equals("ssafy") && user.getPass().equals("1234")) {
			session.setAttribute("user", user);
			return "redirect:/index";
		}
			
		model.addAttribute("msg", "로그인에 실패했습니다.");
		return "/";
	}
  • 자동으로 User 객체를 만들어준다!
  • 단 jsp의 form에서 입력 폼을 같은 인자로 설정해줘야한다!

@RequestParam

  • URI에 포함된 매개변수 추출에 사용된다.
  • 매개변수를 적절히 추출해서 컨트롤러 내에서 자유롭게 사용 가능

@PathVariable

  • /api/user/{id} 와 같은 경로에서 id값을 가져온다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.