@RequestMapping("user/userEntry")
public ModelAndView entry(@Valid User user, BindingResult br, HttpSession session) {
ModelAndView mav = new ModelAndView("user/userForm");
if(br.hasErrors()) {
mav.getModel().putAll(br.getModel());
return mav;
}
try {
service.userCreate(user);
mav.setViewName("user/login");
mav.addObject("user",new User());
} catch (DataIntegrityViolationException e) {
br.reject("error.duplicate.user");
}
return mav;
}
스프링에서 어노테이션을 많이 사용하게 된다.
@RequestMapping("user/userEntry") //Url에서 요청한 값에서 값을 읽어들이는 키와 같은 역할을 한다. 만약 url중에 ""안에 들어있는 값이 보이게 된다면 entry 메서드가 실행 되게 된다.
public ModelAndView entry(@Valid User user, BindingResult br, HttpSession session) { //ModelAndView의 구체적인 내용은 잘 모르겠지만 추측 하건데, MVC에서 MV를 나타내는 것 같다.
entry메서드는 user객체, BindinrResult객체, HttpSession 객체를 읽어온다.
User객체는 jsp를 부를 때 객체를 생성한 상태에서 사용자가 입력을하면 User객체에 고이 담아진다.
그것을 불러오고 @Valid를 통해서 유효성 검사를 한다.
그래서 mav.getModel().putAll(br.getModel()); 명령문을 실행시키면 유효성 검증이 되게 된다.
일단,...하나하나 설명하기는 힘들거 같으나 ,, 최대한 설명을 자세히 기록 하겠다.
반응형