스프링/스프링 MVC 패턴
-
상품 웹 사이트 - 상품 등록스프링/스프링 MVC 패턴 2023. 2. 16. 15:24
상품 등록 폼 @GetMapping("/add") public String addForm() { return "basic/addForm"; } @GetMapping의 접근을 통해 아래의 addForm.html로 접근한다. addForm.html 상품 등록 폼 상품 입력 상품명 가격 수량 상품등록 취소 상품 등록 폼을 만들어서 상품의 이름, 가격, 수량을 입력하면 상품 등록이 되는 코드이다. 상품 등록폼이다. 여기에 상품명과 가격과 수량을 입력하고 상품 등록을 누르면 아래와 같이 연결된다. 아래의 POSTMapping 접근들은 생성한 후 상세 페이지로 들어가게 해주는 메서드들이다. url이 같더라도 GET인지 POST인지 접근방법에 따라 다르다. @PostMapping("/add") public Strin..
-
상품 웹 사이트 - 상품 상세 페이지스프링/스프링 MVC 패턴 2023. 2. 16. 15:07
상품 목록에서 상품을 누르면 상품 상세페이지가 열려서 수정을 원하면 수정을 할 수 있는 사이트를 만들 것이다. @GetMapping("/{itemId}") public String item(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; } 이전 게시글에서 /basic/items/{itemId}로 연결하는 것을 만들었다. @PathVariable을 통해 itemId를 받아오고, findById를 통해 item을 찾아 온 다음 그 item을 모델에 넘겨준다. basic/item.html 파일은 아래와 같..
-
상품 웹 사이트 - 타임리프 (아이템 목록)스프링/스프링 MVC 패턴 2023. 2. 16. 14:52
@RequestMapping("/basic/items") @RequiredArgsConstructor // 생성자 자동 생성 public class BasicItemController { private final ItemRepository itemRepository; @GetMapping public String items(Model model) { List items = itemRepository.findAll(); model.addAttribute("items", items); return "basic/items"; } items 메서드는 localhost:8080/basic/items에 매핑해줘서 아이템 목록을 확인할 수 있게 해주는 메서드이다. itemRepository.findAll()메서드를 ..
-
상품 웹 사이트 - 도메인 개발스프링/스프링 MVC 패턴 2023. 2. 16. 14:27
상품 목록을 보여주고 새로운 상품을 만들고 수정할 수 있는 웹 사이트를 만들어보았다. Item Class @Data // 실무에서는 @Getter @Setter 쓰고 Data는 잘 안씀 public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; } } Item 클래스를 만들었는데, id는 상품을 ..
-
HTTP 요청 메서드 - JSON스프링/스프링 MVC 패턴 2023. 2. 14. 16:26
@Slf4j @Controller public class RequestBodyJsonController { private ObjectMapper objectMapper = new ObjectMapper(); // json을 사용하기 위해 만들어야함 @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputSt..
-
HTTP 요청 메시지 - 텍스트스프링/스프링 MVC 패턴 2023. 2. 14. 15:19
messageBody에 문자를 입력하고 그 문자를 받아오는 코드 @Slf4j @Controller public class RequestBodyStringController { @PostMapping("/request-body-string-v1") public void requestBodyString(HttpServletRequest request,HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info(..
-
요청 파라미터 - @RequestParam, @ModelAttribute스프링/스프링 MVC 패턴 2023. 2. 14. 14:18
쿼리 파라미터에 들어온 값들을 재사용하거나 출력해야할 때가 있다. 그럴 때 사용하는 것이 @RequestParam 애노테이션이다. @RequestParam 사용 x @RequestMapping("/request-param-v1") public void requestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); log.info("username={}, age={}", username, age); respon..
-
API 요청 매핑 타입스프링/스프링 MVC 패턴 2023. 2. 14. 12:50
회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} 회원 목록 조회와 회원 등록을 보면 url이 같더라도 http 메서드로 구분해서 기능을 다르게 할 수 있다. @RestController @RequestMapping("/mapping/users") public class MappingClassController { /** 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE..