728x90 반응형 전체 글114 [스프링MVC -상품 관리 웹 개발 5] 상품 등록 처리 - @ModelAttribute [스프링MVC - 상품 관리 웹 페이지 만들기 4] 상품 등록 폼 (tistory.com) [스프링MVC - 상품 관리 웹 페이지 만들기 4] 상품 등록 폼 컨트롤러 로직 추가 /** 상품 등록 폼*/ @GetMapping("/add") public String addForm() { return "basic/addForm"; //단순히 뷰 템플릿만 호출 } 뷰 템플릿(templates) /resources/templates/basic/addForm.html 상품 등록 폼 상품 입력 joly156.tistory.com 이제 상품 등록 폼에서 전달된 데이터로 실제 상품을 등록 처리해보자. 요청 파라미터 형식을 처리해야 하므로 @RequestParam 을 사용 @PostMapping("/add") public.. 2023. 8. 31. [스프링MVC -상품 관리 웹 개발 4] 상품 등록 폼 컨트롤러 로직 추가 /** 상품 등록 폼*/ @GetMapping("/add") public String addForm() { return "basic/addForm"; //뷰 템플릿 호출 (내부 호출) } 단순히 뷰 템플릿만 호출 뷰 템플릿(templates) /resources/templates/basic/addForm.html 상품 등록 폼 상품 입력 상품명 가격 수량 상품등록 취소 속성 변경 - th:action HTML form에서 action에 값이 없으면? 현재 URL에 데이터를 전송한다. 상품 등록 폼의 URL과 실제 상품 등록을 처리하는 URL을 똑같이 맞추고 HTTP 메서드로 두 기능을 구분 (이렇게 하면 하나의 URL로 등록 폼과, 등록 처리를 깔끔하게 처리할 수 있다.) 상품 등록 .. 2023. 8. 31. [스프링MVC -상품 관리 웹 개발 3] 상품 상세 컨트롤러 로직 추가 /** 상품 상세(조회) */ @GetMapping("/{itemId}") public String item(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); //PathVariable 로 넘어온 상품ID로 item 조회하고 model.addAttribute("item", item); //모델에 담아둔다 return "basic/item"; //뷰 템플릿 호출 } 뷰 템플릿(templates) /resources/templates/basic/item.html 상품 상세 상품 ID 상품명 가격 수량 상품 수정 목록으로 속성 변경 - th:value th:value="${item.id.. 2023. 8. 30. [스프링MVC -상품 관리 웹 개발 2] 상품 목록 - 타임리프 컨트롤러 로직 @Controller @RequestMapping("/basic/items") @RequiredArgsConstructor//final이 붙은 멤버변수만 사용한 생성자 자동 생성 public class BasicItemController { private final ItemRepository itemRepository; /** 상품 목록 */ @GetMapping public String items(Model model) { List items = itemRepository.findAll();//모든 상품 조회 model.addAttribute("items", items);//items(모든 상품)을 모델에 담는다 return "basic/items";//뷰 템플릿 호출 } /** * 테스.. 2023. 8. 29. [스프링MVC 기본 기능 11] 요청 매핑 핸들러 어댑터 구조 HTTP 메시지 컨버터는 어디에서 사용되는 것일까? RequestMappingHandlerAdapter (요청 매핑 핸들러 어댑터) 애노테이션 기반의 컨트롤러, 즉 @RequestMapping을 처리하는 핸들러 어댑터이다. 애노테이션 기반의 컨트롤러는 매우 다양한 파라미터를 사용할 수 있었다. HttpServletRequest , Model 은 물론이고, @RequestParam , @ModelAttribute 같은 애노테이션 뿐 아니라, @RequestBody , HttpEntity 같은 HTTP 메시지를 처리하는 부분까지. 매우 큰 유연함을 보여주었다. → 이렇게 유연하게 파라미터를 처리할 수 있는 이유가 바로 ArgumentResolver 덕분이다! 1. 애노테이션 기반 컨트롤러를 처리하는 Requ.. 2023. 8. 27. [스프링MVC 기본 기능 10] HTTP 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다. @ResponseBody를 사용하면? HTTP의 BODY에 문자 내용을 직접 반환 viewResolver 대신에 HttpMessageConverter 가 동작 기본 문자처리: StringHttpMessageConverter 기본 객체처리: MappingJackson2HttpMessageConverter byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음 응답의 경우 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConv.. 2023. 8. 26. 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음 728x90 반응형