전체 글
-
[김영한 스프링] 02. 타임리프 기본 기능 - 텍스트(text, utext) & 변수(SpringEL)Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 7. 25. 23:24
텍스트 - text, utex 타임리프는 기본적으로 HTML 테그의 속성에 기능을 정의해서 동작한다. HTML의 콘텐츠(content)에 데이터를 출력할 때는 다음과 같이 th:text를 사용하면 된다. HTML 테그의 속성이 아니라 HTML 콘텐츠 영역 안에서 직접 데이터를 출력하고 싶으면 다음과 같이 [[...]]를 사용하면 된다. 컨텐츠 안에서 직접 출력하기 = [[${data}]] BasicController main/java/hello/thymeleaf/basic/basicController 생성 package hello.thymeleaf.basic; import org.springframework.stereotype.Controller; import org.springframework.ui.M..
-
[김영한 스프링] 01. 타임리프 기본 기능 - 프로젝트 생성 & 세팅Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 7. 24. 22:31
프로젝트 생성 https://start.spring.io 프로젝트 선택 Project : Gradle - Groovy Project Language : Java Spring Boot : SNAPSHOT이 아닌 버전에서 2.x Project Metadata Group : hello Artifact : thymeleaf-basic Name : thymeleaf-basic Package name : hello.thymeleaf Packaging : Jar Java : 11 Dependencies : Spring Web, Lombok, Thymeleaf build.gradle 선택 -> 프로젝트 열기 홈 화면 텍스트 텍스트 출력 기본 텍스트 text, utext 표준 표현식 구문 변수 - SpringEL 기본 ..
-
[김영한 스프링] 34. 스프링 MVC 웹 페이지 만들기 - PRG Post/Redirect/GetSpring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 24. 03:51
PRG Post/Redirect/Get 사실 지금까지 진행한 상품 등록 처리 컨트롤러는 심각한 문제가 있다. (addItemV1 ~ addItemV4) 상품 등록을 완료하고 웹 브라우저의 새로고침 버튼을 클릭해 보자. 상품이 계속해서 중복 등록되는 것을 확인할 수 있다. testC 상품 등록 상품 등록 후 새로고침 하면 중복으로 데이터 생성 됨 전체 흐름 POST 등록 후 새로 고침 웹 브라우저의 새로 고침은 마지막에 서버에 전송한 데이터를 다시 전송한다. 상품 등록 폼에서 데이터를 입력하고 저장을 선택하면 POST /add + 상품 데이터를 서버로 전송한다. 이 상태에서 새로 고침을 또 선택하면 마지막에 전송한 POST /add + 상품 데이터를 서버로 다시 전송하게 된다. 그래서 내용은 같고, ID만..
-
[김영한 스프링] 33. 스프링 MVC 웹 페이지 만들기 - 상품 등록 처리 & 상품 수정Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 24. 03:02
상품 등록 처리 - @ModelAttribut 상품 등록 폼은 다음 방식으로 서버에 데이터를 전달한다. POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 itemName=itemA&price=10000&quantity=10 예) 회원 가입, 상품 주문, HTML Form 사용 요청 파라미터 형식을 처리해야 하므로 @RequestParam을 사용하자 상품 등록 처리 - @RequestParam addItemV1 - BasicItemController에 추가 @PostMapping("/add") public String save(@RequestParam String itemName, @RequestP..
-
[김영한 스프링] 32. 스프링 MVC 웹 페이지 만들기 - 상품 상세 & 상품 등록 폼Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 24. 01:36
상품 상세 BasicItemController에 추가 @GetMapping("/{itemId}") public String items(@PathVariable long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; } PathVariable로 넘어온 상품ID로 상품을 조회하고, 모델에 담아둔다. 그리고 뷰 템플릿을 호출한다. 상품 상세 뷰 resources/static/html/item.html을 resources/templates/basic로 복붙 타임리프 사용 선언, 속성 변경 th:href="@{/css/bootstrap.min..
-
[김영한 스프링] 31. 스프링 MVC 웹 페이지 만들기 - 상품 목록 타임리프Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 23. 23:06
상품 목록 - 타임리프 BasicItemController main/java/hello/itemservice/web/item/basic/BasicItemController 생성 package hello.itemservice.web.item.basic; import hello.itemservice.domain.item.Item; import hello.itemservice.domain.item.ItemRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind..
-
[김영한 스프링] 30. 스프링 MVC 웹 페이지 만들기 - 상품 서비스 HTMLSpring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 20. 03:12
상품 서비스 HTML 부트스트랩 참고로 HTML을 편리하게 개발하기 위해 부트스트랩 사용했다. 먼저 필요한 부트스트랩 파일을 설치하자 부트스트랩을 다운로드 받고 압출을 풀자. 이동 : https://getbootstrap.com/docs/5.0/getting-started/download/ Compiled CSS and JS 항목을 다운로드하자. 압축을 출고 bootstrap.min.css를 복사해서 다음 폴더에 추가하자 resources/static/css/bootstrap.min.css 참고 부트스트랩(Bootstrap)은 웹사이트를 쉽게 만들 수 있게 도와주는 HTML, CSS, JS 프레임워크이다. 하나의 CSS로 휴대폰, 태블릿, 데스크탑까지 다양한 기기에서 작동한다. 다양한 기능을 제공하여 사..
-
[김영한 스프링] 29. 스프링 MVC 웹 페이지 만들기 - 상품 도메인 개발Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 19. 22:26
상품 도메인 개발 Item - 상품 객체 package hello.itemservice.domain.item; import lombok.Data; @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; } } main/java/hello/itemservice/domain/item/I..