즐겨찾기 서비스 URL
작업 URL Method
목록 조회 /link GET
추가 (폼) /link/form GET
추가 (폼 서브밋) /link POST
뷰 /link/1 GET
수정 (폼) /link/1/form GET
수정 (폼 서브밋) /link/1 PUT
삭제 /link/1 DELETE
5.
주요 기술 ::스프링 3.0 @MVC
• @RequestMapping
• @PathVariable
• hiddenMethodFilter
• 스프링 form 태그
• ContentsNegotiatingViewResolver
6.
@RequestMapping
@RequestMapping(value = ”/link/{id}",method = RequestMethod.DELETE)
public String delete(@PathVariable int id){
postService.delete(id);
return ”/link";
}
• DefaultAnnotationHandlerMapping이
@RequestMapping 정보를 참조해서 핸들
러 찾아줌.
7.
@PathVariable
@RequestMapping(value ="/link/{id}", method = RequestMethod.GET)
public String view(@PathVariable int id, Model model){
model.addAttribute(”link", linkService.get(id));
return ”link/view";
}
• /link/1 => /link/{id}
• 기본값 설정 가능
1. 미디어 타입결정
1. URL 확장자로 결정
– /book.json
2. 요청 파라미터로 결정
– /book?format=json
3. Access 헤더 정보로 결정
4. defaultContentType 속성 값 사용.
14.
2. 뷰 후보선정
1. viewResolvers 미사용시: 서블릿 콘텍스
트에 등록된 모든 ViewResolver 사용해서
뷰 후보 선정
2. viewResolvers 사용시: 모든 뷰 리졸버가
돌려주는 뷰를 후보 목록에 추가
3. defaultView 속성에 설정한 뷰는 무조건
후보 목록에 추가
15.
3. 최종 뷰결정
• 미디어 타입과 뷰 목록 비교해서 뷰 결정
– 뷰의 contents-type과 미디어 타입 비교
• 예제
– 미디어 타입은 JSON
– 뷰 후보: JSON 뷰, JSTL 뷰, XML 뷰
– 결과: JSON뷰 사용
17.
RestTemplate
• Spring 3.0M2 추가됨.
• Spring’s Template series와 비슷한 형태
(JdbcTemplate, JmsTemplate ... )
• RESTful 스타일 URL 지원.
• HTTP access 단순화.
• 사용자 정의 콜백 및 결과 추출 클래스 지원.
RestTemplate methods
HTTP method RestTemplate methods
GET getForObject(…)
getForEntity(…)
POST postForLocation(…)
postForObject(…)
PUT put(…)
DELETE delete(…)
HEAD headForHeaders(…)
OPTIONS optionForAllow(…)