• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

미니프로젝트 질문입니다

20.08.01 18:15 작성 조회수 154

0

package kr.co.softcampus.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;

import org.springframework.validation.BindingResult;

import org.springframework.web.bind.WebDataBinder;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.InitBinder;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import kr.co.softcampus.beans.UserBean;

import kr.co.softcampus.validator.UserValidator;

@Controller

@RequestMapping("/user")

public class UserController {

@GetMapping("/login")

public String login() {

return "user/login";

}

@GetMapping("/join")

public String join(@ModelAttribute("joinUserBean") UserBean joinUserBean) {

return "user/join";

}

@PostMapping("/join_pro")

public String join_pro(@Valid @ModelAttribute("joinUserBean") UserBean joinUserBean,BindingResult result) {

if(result.hasErrors()) {

return "user/join";

}

return "user/join_success";

}

@GetMapping("/modify")

public String modify() {

return "user/modify";

}

@GetMapping("logout")

public String logout() {

return "user/logout";

}

@InitBinder

public void initBinder(WebDataBinder binder) {

UserValidator validator1=new UserValidator();

binder.addValidators(validator1);

}

}

진하게 된 @ModelAttribute질문입니다

@ModelAttribute는 html로 넘어오는 값을 자동으로 클래스에 담아주는 역할을 한다고 들었는데

join_pro메서드에서 다시 또 한번 써주는 이유는 무엇인가요?

답변 1

답변을 작성해보세요.

0

유효성 검사 처리를 해주기 위해서 설정한 부분입니다. 29강 유효성 검사 과정부터 다시 학습해주시기 바랍니다. ModelAttribute로 정의한 빈은 객체로 생성되어 자동 주입이 되면서 파라미터 데이터를 동일한 이름의 프로퍼티에 자동 주입해주는 일까지 해줍니다. 또한 request 영역에 자동으로 저장이 되어 jsp에서 사용이 가능하게 됩니다.