18.1 웹 어플리케이션 준비
프로젝트 설정
18.2 @RequestMapping을 이용한 URL 맵핑
@RequestMapping의 속성으로 method가 있는데, requset의 방식을 명시하는 속성이다.
get방식은 생략 가능, post는 명시해야한다.
method1, 2, 3번이 다 member/1, member/2, member/3 으로 맵핑해야할 때 클래스가 공통된 요청을 처리한다면 클래스 위에 RequestMapping("/member")를 명시하면 좋다.
그 후엔 메소드 1, 2, 3번 위에 RequestMapping("/1")로 하면 /member/1로 맵핑된다.
18.3 요청 파라미터
form을 이용해 사용자로부터 넘어온 데이터를 얻는 방법이 있다.
1. HttpServletRequest 객체를 이용해 String memId = request.getParameter("memId");로 얻는 방법.
2. 메소드의 멤버변수로 @RequestParam("memId") String memId를 입력해서 얻는 방법.
3. 커맨드 객체를 이용해 얻는 방법. getter와 setter를 모두 정의한 클래스를 멤버변수로 포함해서 얻을 수 있다. 코드를 많이 줄일 수 있어 자주 사용한다.
18.4 @ModelAttribute
@ModelAttribute를 이용하면 커맨드 객체의 이름을 변경할 수 있고,
변경된 이름은 뷰에서 커맨드 객체를 참조할 때 사용된다.
@ModelAttribute가 적용된 메소드는 다른 메소드가 호출되어도 같이 호출되어서 View에서 사용할 수 있게된다.
ex) ch_19에서 memJoin을 실행해도 serverTime을 실행하게 된다.
18.5 커맨드 객체 프로퍼티 데이터 타입
입력 받는 데이터가 기초 데이터 타입인 경우 String, int 등으로 자동을 변환이 된다.
데이터가 중첩 커맨드 객체를 이용한 List인 경우 따로 객체를 만들어서 List로 받아준다.
18.6 Model & ModelAndView
컨트롤러에서 뷰에 데이터를 전달하기 위해 사용되는 객체로 Model과 ModelAndView가 있다.
두 객체의 차이점은 Model은 뷰에 데이터만을 전달하기 위한 객체이고
ModelAndView는 데이터와 뷰의 이름을 함께 전달하는 객체이라는 것이다.
model을 사용하면 model에 addAttribute로 전달할 데이터를 추가할 수 있다. String으로 뷰의 이름을 반환한다.
ModelAndView는 addObject로 데이터를 추가하고 setViewName으로 뷰의 이름을 지정할 수 있다. 그 후 ModelAndView 객체 자체를 반환한다.
둘 중 편한 것을 사용하자.
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 리다이렉트, 인터셉트 (0) | 2020.03.24 |
---|---|
[Spring] 세션, 쿠키 (0) | 2020.03.24 |
[Spring] Service & DAO 객체 구현 (0) | 2020.03.23 |
[Spring] 스프링 MVC 웹 서비스 (0) | 2020.03.23 |
[Spring] 웹 프로그래밍 설계 모델 (0) | 2020.03.22 |